关于finish()在android中
有人可以提供一个活动调用finish()时发生的情况的描述吗?
它立即退出,还是完成了它被调用的function?
它是立即退出还是完成它被调用的function?
调用finish()的方法将运行完成。 finish()操作将不会开始,直到您将控制权返回给Android。
ondestroy()是在您的活动被销毁之前接收到的最终呼叫。
这可能是因为活动正在完成(某人称为finish() ,或者系统暂时销毁活动实例以节省空间,您可以使用isFinishing()方法区分这两种情况。
一个Activity的onCreate , onResume , onPause …. onDestroy等每个生命周期事件总是在单个线程上调用 – “主线程”。
简而言之,这个线程由一个队列支持,所有活动事件都被发送到该队列中。 这个线程可以按照插入的顺序执行所有这些事件。
如果你正在像onCreate()这样的生命周期callback之一中调用finish() ,那么将会添加一个“finish”消息到这个队列中,但是这个线程不能自由地select和执行“finish”动作,直到当前执行的方法返回即线程从当前任务中释放。
如果有两个活动A和B.而你的stream程从A> B进行; 和B = A调用finish() 。
然后,
你叫做finish()的方法将会像Mark提到的那样执行。 callbackstream程如下 –
-
activity AonPause() - 活动B的
onRestart()>onStart()>onResume() - 然后,真正的区别。 如果你没有从
activity A调用finish()只有Activity AonStop()会被调用。 而在这种情况下,我们从Activity A调用finish()。 所以onStop()和onDestroy()都将被调用activity A