检查一些遗留代码我找到了这个代码段:
@Override
public void onResume() {
if (!isFinishing()) {
...
}
super.onResume();
}
尽管在方法结束时调用super.onResume()
,但不鼓励:
注意:您必须始终调用这些生命周期方法的实现 在做任何工作之前的超类实现,如图所示 上面的例子 http://developer.android.com/guide/components/activities.html
我关注if (!isFinishing())
电话,这有意义吗?正如我所看到的,仅在mFinished
和finish()
上检查活动代码finishActivity()
变量是否设置为true,是否可以通过Android生命周期恢复正在销毁的活动?
提前致谢。
答案 0 :(得分:1)
你回答的问题是"没有"如果活动被销毁,则不能恢复活动 这是一个很好的讨论: Understanding of isFinishing()
此代码的原因可能是区分方向 改变和实际完成活动重要的是在这里注意 is isFinishing:true表示调用
isFinishing()
onDestroy()返回true,即在以下时间发生:用户点击"返回"按钮或活动的代码调用它
finish()
(isFinishing()
在活动关闭之后返回false 电话轮换,以便重新开始)
http://ogrelab.ikratko.com/activity-lifecycle-explained-in-details/
答案 1 :(得分:1)
最后,遗留代码在page
方法的某些环境下调用了finish()
。但请查看onCreate()
javadoc:
您可以在此函数中调用finish(),在这种情况下 onDestroy()将立即被调用,而不会有任何其余的 活动生命周期(onStart(),onResume(),onPause()等)执行。
因此,此onCreate()
调用在isFinishing()