拥有一个刚刚在他的Galaxy S上更新到2.2.1的用户。现在,当他按下HOME并重新启动该应用程序时,我在日志中看到该应用程序上下文已重新初始化并创建了新的进程ID(已验证通过我的应用程序实例中onCreate()中的日志消息。)

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

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

在他升级到2.2.1之后,我才在Samsung Galaxy S上注意到这一点。

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

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

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

最佳答案

我最终修改了我的PreferenceActivity子类,以在活动开始时初始化数据库表中的共享首选项,并在值更改时写入数据库。 PITA,但所有Samsung S问题现在都消失了。

关于android - 从Samsung Galaxy S 2.2.1的历史记录恢复 Activity 后无法检索sharedPreference,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4804305/

10-10 20:21