【问题标题】:Android simulate temporary Activity destruction?Android模拟临时Activity销毁?
【发布时间】:2016-02-03 11:55:52
【问题描述】:

有没有办法模拟“暂时”销毁的 Activity(如Activity.onDestroy 文档中所述)?

在销毁活动之前执行任何最终清理。这可能是因为 Activity 正在完成(有人在其上调用了 finish(),或者因为系统暂时销毁了该 Activity 实例以节省空间。您可以使用isFinishing() 方法。

在某些设备上,我的应用似乎正在发生这种情况。在“临时”onDestroy 之后,Activity 稍后会得到一个 onResume,我的代码没有正确处理(并且,我想测试并纠正这个问题)。

【问题讨论】:

  • 您是说您看到有迹象表明 onDestroy() 被调用以执行某项活动,然后onResume() 被称为同一活动?
  • 这是向我报告的内容,是的。
  • 我对这些报告持怀疑态度。所有描述 Activity 生命周期的documentation 都表明它永远不会发生。
  • 当有人告诉我我的代码中有错误时,我总是持怀疑态度:)。

标签: android android-lifecycle


【解决方案1】:

在手机设置的开发者选项中,靠近列表底部,您可以打开“不保留活动”。当您按下主页按钮时,系统将破坏您的活动,类似于低内存情况。当您重新打开应用程序时,您的活动将使用 savedInstanceState 包重新创建。

要启用开发者选项,请转到“设置 -> 关于手机”,然后快速点击内部版本号 7 次。

编辑:如果这不能重现您的问题,您也可以尝试从 ddms 强制关闭您的应用并重新打开它。这也应该有效。

【讨论】:

  • 我正在测试的设备是 FireTV - 它在开发者选项中没有“不保留活动”。来自 DDMS 的“Halt VM”(我假设您的意思是强制关闭)只会完全杀死应用程序 - 您无法恢复它。
猜你喜欢
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多