android应用开发,关于初始化界面问题,怎么使程序安装第一次运行时出现初始化界面,第二次运行不出现
我做了3个界面,一张是启动页SplashActivity,一张是初始化信息界面Initialize,还有一张是主页MainActivity,现在我的想法是,第一次启动:S...
我做了3个界面,一张是启动页SplashActivity,一张是初始化信息界面Initialize,还有一张是主页MainActivity,现在我的想法是,第一次启动:SplashActivity--》Initialize--》MainActivity;第二次启动:SplashActivity--》MainActivity,但现在我每次安装启动后都会直接跳到主页,中间的初始化界面不会出现,这是什么问题呢?我猜测是因为count的问题,该怎么解决。我比较希望用boolean来判断,这样的话代码要怎么改?
我用的是SharedPreferences,SplashActivity里的代码如下:
public class SplashActivity extends Activity{ private final int SPLASH_DISPLAY_LENGHT = 5000;
private SharedPreferences preferences=null;
/* (non-Javadoc) * @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
//初始判断
preferences = getSharedPreferences("count", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
int count = preferences.getInt("count", 0);
if (count == 0) {
new Handler().postDelayed(new Runnable() {
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,Initialize.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGHT);
}
else{
new Handler().postDelayed(new Runnable() {
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,MainActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGHT);
}
editor = preferences.edit();
//存入数据
editor.putInt("count", count++);
//提交修改
editor.commit();
}
} 展开
我用的是SharedPreferences,SplashActivity里的代码如下:
public class SplashActivity extends Activity{ private final int SPLASH_DISPLAY_LENGHT = 5000;
private SharedPreferences preferences=null;
/* (non-Javadoc) * @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
//初始判断
preferences = getSharedPreferences("count", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
int count = preferences.getInt("count", 0);
if (count == 0) {
new Handler().postDelayed(new Runnable() {
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,Initialize.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGHT);
}
else{
new Handler().postDelayed(new Runnable() {
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,MainActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGHT);
}
editor = preferences.edit();
//存入数据
editor.putInt("count", count++);
//提交修改
editor.commit();
}
} 展开
展开全部
你的int count变量应该定义为全局变量,这样才能count++的时候能达到1以上的值,否则你的count最多达到1,当然了,在这儿也能达到你的要求;
现在问题出在你的count++,应该改为++count,因为每次进入onCreate(),count都归为初始值0,在提交count的时候,因为是后自增,导致你的count值提交的是改变之前的值,也就是0
boolean类型的值就不会出现这个问题了,也很好用,直接editor.putBoolean("isSkip", true);
现在问题出在你的count++,应该改为++count,因为每次进入onCreate(),count都归为初始值0,在提交count的时候,因为是后自增,导致你的count值提交的是改变之前的值,也就是0
boolean类型的值就不会出现这个问题了,也很好用,直接editor.putBoolean("isSkip", true);
追问
我还想问一下在android虚拟机里面怎么才能退出后台程序呢?这样我才能实验第二次能不能跳过。
追答
虚拟机其实是跟手机一样的,你进 setting-->application-->force stop就会退出了,里面也有卸载选项
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询