实现第一次使用APP时显示引导页面,以后不再显示,代码如下,但是不行

    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 啊