关于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 A
onPause()
- 活动B的
onRestart()
>onStart()
>onResume()
- 然后,真正的区别。 如果你没有从
activity A
调用finish()
只有Activity A
onStop()
会被调用。 而在这种情况下,我们从Activity A
调用finish()
。 所以onStop()
和onDestroy()
都将被调用activity A