【问题标题】:Android not restoring widgets correctly upon restoring focusAndroid 在恢复焦点后无法正确恢复小部件
【发布时间】:2012-01-30 17:22:38
【问题描述】:

我正在开发一个 GUI 很重的 Android 应用程序,它有很多在运行时动态配置的小部件(文本字段、按钮等)。当应用程序获得焦点时,一切都运行良好,但是一旦用户将应用程序推送到后台并恢复它,所有小部件都会失去其动态状态并恢复到其布局定义的默认状态。这是 Android 应用的正确行为吗?

我在其他平台(iOS、Windows、Mac)上开发了许多 UI,但我从未见过这样的行为。我是否必须做一些神奇的舞蹈才能让 Android 在重新聚焦之间保持小部件状态?任何提示将不胜感激!

【问题讨论】:

    标签: android focus widget resume stateful


    【解决方案1】:

    你需要做的是查看lifecycle of an activity

    基本上,您需要在 onPause() 函数中保存状态,并使用 onResume() 函数恢复它。

    【讨论】:

    • 我感觉这将是答案 :(,手动保存小部件状态。为什么在所有其他操作系统上这是为您完成的,但对于 Android,我必须手动保存小部件状态?感觉就像1990 年代又来了……谢谢!
    • 您可以只在 onResume() 命令而不是 onCreate() 中进行配置(不确定您是否正在这样做,但是...),它的行为应该相同。更具体地说,我需要更好地了解您的程序的外观......
    • 我的程序非常动态,应用程序状态由外部脚本系统定义。在启动时,程序绑定所有小部件并将它们暴露给执行所有动态配置的脚本(即设置可见性、颜色和文本)。显然,编写一个还必须考虑 Android 怪癖的脚本会过于复杂,所以我'将确保在 onResumes 之间保存小部件状态.. 我确实有 100 个小部件..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2021-08-06
    • 2014-04-10
    相关资源
    最近更新 更多