android - 从 Samsung Galaxy S 2.2.1 的历史记录中恢复 Activity 时无法检索 sharedPreference

标签 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 读到一些关于任务重设等的内容,但不确定是否有任何选项真的有用?

最佳答案

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

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

相关文章:

android - 使用 PCL 和共享项目的模糊引用

android - 消息在回收者 View 中无法正确显示

Android ImageButton 状态没有改变

android - 使用httppost android上传文件

android - NestedScrolling 在 BottomSheetDialog 内的 Viewpager 内

android - Android POST 请求收到空响应

android - 我什么时候应该将我的 Android 应用程序定义为不可移动到 SD 卡 (installLocation=internalOnly)?

java - 使用 URL 中的图像更新 ImageView

Android 如何从应用程序启用/禁用以太网?

android - 如何使用一个 Activity 中的按钮在第二个 Activity 中执行某些操作?