[英]Why is onDestroy() called after onResume() when using back-button
当我开始我的android-activity时,首先调用onCreate()
,然后调用onResume()
。
当我按下后退按钮返回主屏幕并再次点击应用程序图标时,首先调用onCreate()
,然后调用onResume()
然后再调用onDestroy()
。
我的应用程序仍处于活动状态,但由于onDestroy()
将一些成员设置为null,因此执行某些操作会导致错误。
这是为什么?
更新:当我在按下后等待30秒后一切正常。 除了将一些变量设置为null和.interrupt()
后台线程之外,我没有在onDestroy中做任何重要事情。
我自己想出来了。 我对Activity
理解是有缺陷的。 当然,Android在旧的 Activity
实例上调用onDestroy(),这可能在构造新的实例后几秒钟发生。
onDestroy
被调用,因为默认情况下,按回键会导致您的活动调用finish()
,这会启动销毁调用onDestroy()的活动。
为了防止在活动被破坏的情况下采取某些行动,请执行以下操作:
if(!isFinishing()) {
// do your action here
}
isFinishing是Activity的一种方法。
你在onDestroy()做了一些繁重的操作吗? 我认为你的活动视图被破坏了,但不是活动对象。 并且在实际销毁上一个Activity对象之前,您点击应用程序图标。
我认为除了你所描述的内容之外还有一些东西。 Android不仅会阻止活动被破坏,还必须在主线程上发生。
症状听起来就像你有:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.