有一个用户刚刚在他的 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 读到一些关于任务重设等的内容,但不确定是否有任何选项真的有用?
最佳答案
我最终修改了我的 PreferenceActivity 子类,以便在 Activity 开始时从数据库表初始化共享首选项,并在值更改时写入数据库。 PITA,但所有三星 S 问题现在都消失了。
关于android - 从 Samsung Galaxy S 2.2.1 的历史记录中恢复 Activity 时无法检索 sharedPreference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4804305/