我刚刚在
中看到了这段代码Intent wizard = new Intent();
wizard.setClass(this, A.class);
wizard.putExtra("Domain", A.getInstance().B);
startActivity(wizard);
finish();
我们为什么要在这里调用finish()方法? 它的目的是什么?
答案 0 :(得分:3)
path
当您的活动完成并且应该关闭时调用此选项,当启动活动时,调用div {
width: 100%;
height: 0;
padding-bottom: 56%; /* Change this till it fits the dimensions of your video */
position: relative;
}
div iframe {
width: 100%;
height: 100%;
position: absolute;
display: block;
top: 0;
left: 0;
}
将关闭当前活动,并且它将无法在finish()
堆栈中使用。
答案 1 :(得分:3)
finish();
结束用于关闭当前活动。就像您将数据发送到其他活动/打开新活动并关闭当前活动。
答案 2 :(得分:2)
你不是必须被迫这样做...... 通常人们会这样做,当且仅当想要破坏启动意图的活动,但那不一定是你的情况......
在android的生命周期中你会看到:
假设您的活动可见,则调用 finish()方法将调用
onPause(),然后是 onStop(),最后是 onDestroy()
答案 3 :(得分:2)
让我们用很少的引语来理解它
完成 - 在您的活动完成后调用此应该关闭。 ActivityResult会传播回给你的人 通过onActivityResult()
onDestroy() - 您在活动之前收到的最终通话 销毁。这可能是因为活动正在结束 (有人称之为完成(),或因为系统是暂时的 破坏活动的这个实例以节省空间。
当您在某项活动上致电finish()
时,会执行onDestroy()
后面的方法。例如:onPause()
> onStop()
>和onDestroy()
它们可能与您拨打finish()
的地方不同!
onDestroy()
用于最终清理 - 释放您可以自己拥有的资源,关闭开放式连接,读者,编写者等。如果你不覆盖它,系统会做它所拥有的。
它告知系统您要完成所选活动,以便在完成活动后调用onDestroy()
。(但不意味着{{1}只有被finish()调用,系统才能在活动被发送到后台状态后耗尽资源)
还有更多有趣的问题,例如你可能想要的Activity.finish() called but activity stays loaded in memory