繁体   English   中英

可以在finish()之后恢复Android活动吗?

[英]Can an Android Activity be resumed after finish()?

检查一些遗留代码我发现这个片段:

@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生命周期恢复正在销毁的活动吗?

提前致谢。

你回答的问题是“不”活动如果被销毁就无法恢复。
这是一个很好的讨论: 了解isFinishing()

这段代码的原因可能是区分方向更改和活动的实际完成。重要的是要注意这里isFinishing:true表示在onDestroy()中调用isFinishing() ()会返回true,即在以下情况下发生:

用户点击“返回”按钮或活动的代码调用它的finish()isFinishing()在电话轮换后活动关闭时返回false,以便再次启动)

http://ogrelab.ikratko.com/activity-lifecycle-explained-in-details/

最后,遗留代码在onCreate()方法的某些环境下调用finish() 但是看看onCreate() javadoc

您可以在此函数中调用finish(),在这种情况下,将立即调用onDestroy(),而不执行任何其余的活动生命周期(onStart(),onResume(),onPause()等)。

所以,这个isFinishing()调用在onResume()里面没用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM