在Samsung Galaxy S 2.2.1上从历史记录恢复活动时无法检索sharedPreference

时间:2011-01-26 11:58:35

标签: android

让用户在他的Galaxy S上更新到2.2.1。现在,当他点击HOME然后重新启动应用程序时,我可以在日志中看到应用程序上下文被重新初始化并且新的进程ID是已创建(通过我的应用程序实例中的onCreate()中的日志消息进行验证。)

奇怪的是,当它从历史重新启动时,我存储重要状态的共享首选项不再可用,并且对context.getSharedPreferences(PREFS_FILE,Mode.WORLD_PRIVATE).getString()的所有请求都返回NULL,最终导致强迫关闭。

再次重新启动应用程序后,一切都按预期工作,并且sharedPreferences再次可用。

我在三星Galaxy S升级到2.2.1之后才注意到这一点。

我很好奇的是,在返回应用程序时似乎启动了一个新流程。

还有其他人看过这种行为吗?也许我做错了什么?

我已经从http://developer.android.com/guide/topics/manifest/activity-element.html#proc读了一些关于任务重新育儿等的内容,但是不确定任何选项在这里真的有用吗?

2 个答案:

答案 0 :(得分:2)

我最终修改了我的PreferenceActivity子类,以便在活动开始时从数据库表初始化共享prefs,并在值发生更改时写入数据库。 PITA,但所有三星S问题现在都已消失。

答案 1 :(得分:0)

这似乎是三星问题 - 我注意到与Galaxy S上的2.2.1 ROM非常类似的问题