强制退出时,SharedPreferences丢失了吗?

时间:2012-12-07 21:42:19

标签: android eclipse sharedpreferences

在我的应用程序中添加了SharedPreferences功能,以便在应用程序退出后启动特定活动。

我使用以下代码保存字符串:

final SharedPreferences pref1 = getSharedPreferences("myapp", MODE_PRIVATE);
            SharedPreferences.Editor editor = pref1.edit();
            editor.putString("Stringval", "view1");
            editor.commit();

然后以下内容加载上次使用的活动,此代码位于OnCreate

之下
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final SharedPreferences pref1 = getSharedPreferences("myapp", MODE_PRIVATE);
        String str1= pref1.getString("Stringval", null);

        if(str1 == "view0")
        {
        setContentView(R.layout.activity_view0);
        }

        else if(str1 == "view1")
        {
        setContentView(R.layout.activity_view1);
        }
        else
        {
        setContentView(R.layout.activity_no_setup);
        }

    }

如果用户刚退出App,然后重新启动它(仅在目前为止在模拟器中测试过),代码就可以工作,但每当我使用任务管理器强制退出应用程序时,如下所示: forcequit 该应用程序仅在不使用SharedPreferences的情况下重新启动。 应用程序未加载SharedPreferences的原因是什么,或者这仅仅是模拟器错误?

1 个答案:

答案 0 :(得分:0)

你可以写

if(str1 != null && str1.equals("view0"))
        {
        setContentView(R.layout.activity_view0);
        }

        else if(str1 != null && str1.equals("view1"))
        {
        setContentView(R.layout.activity_view1);
        }
        else
        {
        setContentView(R.layout.activity_no_setup);
        }
试试这个,对你有帮助......