【问题标题】:avoid onCreate() function call of activity when back button is pressed按下后退按钮时避免活动的 onCreate() 函数调用
【发布时间】:2014-11-16 18:17:11
【问题描述】:

我有 2 个活动,活动 A 和活动 B。这两个活动都有片段。活动 A 调用活动 B。 当调用活动 B 并且我按下返回按钮时,在中等屏幕尺寸上调用以下函数序列。

活动A的onResume()

但是当调用活动 B 并且我按下返回按钮时,在 大屏幕尺寸 (10.1') 上会调用以下函数序列。

活动A的onCreate()
与活动A关联的片段的onCreateView()
活动A的onResume()

这两个活动都限制在清单中的纵向模式,我也使用了

android:configChanges="orientation|keyboardHidden|screenSize"

对于清单中的每个活动。

我想要的是,应用程序的行为就像它在中等屏幕尺寸上的行为一样。即当我按下返回按钮时,我不想调用活动 A 的 onCreate()

任何帮助都将不胜感激并提前致谢。

【问题讨论】:

  • 我不认为你可以。我的理解是Android系统可以杀死任何不活动的活动,如果它需要内存,然后再次显示时会重新创建活动对象。你很幸运,中号版本没有被杀死。
  • 嗯,根据android文档,活动A应该暂停,当我从活动B回来时,它应该只是恢复。这是我在所有其他应用程序中得到的。 ://
  • 毫无意义。这不是标准行为。你能知道,在你在大屏设备上启动 Activity B 后,ActivityA.onDestroy() 是否被调用了?如果是这样,也许该设备启用了开发人员标记“不要保留活动”

标签: android android-intent android-activity


【解决方案1】:

将您的活动状态保存在 onsaveinstancestate() 中,然后在所有 onCreate 代码之前检查捆绑包。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

【讨论】:

    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 2019-08-23
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多