【问题标题】:Can't retrieve sharedPreference when activity is resumed from history on Samsung Galaxy S 2.2.1从三星 Galaxy S 2.2.1 上的历史记录恢复活动时无法检索 sharedPreference
【发布时间】:2011-01-26 11:58:34
【问题描述】:

有一个用户刚刚在他的 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 阅读了一些关于任务重新育儿等的信息,但不确定任何选项在这里真的有帮助吗?

【问题讨论】:

  • 你的主要活动上是否有 android:launchMode="singleTask" 也有:
  • 我没有 singleTask - 当我将它更改为具有 singleTask 时,它会从头开始重新启动应用程序并且不显示最后一个活动。我现在正在阅读任务、启动模式和任务相关性,以便更好地理解事情。这似乎是一个不错的资源:@​​987654322@

标签: android


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我四处搜索,但找不到三星 Android 问题的用户/开发者论坛。有人知道我们可以在哪里报告这些问题、论坛等吗?
    猜你喜欢
    • 2012-07-22
    • 1970-01-01
    • 2012-06-12
    • 2012-01-24
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多