final boolean isFirst;
SharedPreferences preferences = getSharedPreferences("first_pref",MODE_MULTI_PROCESS);
isFirst = preferences.getBoolean("isFirstIn", true);
Log.d("StartActivity","is"+isFirst);
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.start_layout);
new Handler().postDelayed(new Runnable() {
public void run() {
if (isFirst) {
// start
intent = new Intent(StartActivity.this, GuideActivity.class);
} else {
// start
intent = new Intent(StartActivity.this, MainActivity.class);
}
StartActivity.this.startActivity(intent);
StartActivity.this.finish();
}
},DISPLAY_TIME);
后面在GuideActivity中修改了文件中isFirst的值为false,但实验发现结果不行,
final boolean isFirst;中声明为final是应为在内部类中不能用变量。
求各位大神指点,谢谢你们
http://www.cnblogs.com/Amandaliu/archive/2012/12/03/2800072.html
final boolean isFirst[1];
isFirst[0]=xxxx;
用数组就好了。
把读取sharepreference的操作放在run里面试一下
你需要持久化存储一个变量。运行的时候先去读取这个变量判断,进而决定是否显示。
if (isFirst) {
// start
intent = new Intent(StartActivity.this, GuideActivity.class);
//在这里 把isFirstIn设为false 保存到SharedPreferences里面
}
smile_ko 正解
改成false之后你要存到sharepreference里面啊0。0 而且没必要final 啊