关于finish()在android中

有人可以提供一个活动调用finish()时发生的情况的描述吗?

它立即退出,还是完成了它被调用的function?

它是立即退出还是完成它被调用的function?

调用finish()的方法将运行完成。 finish()操作将不会开始,直到您将控制权返回给Android。

ondestroy()是在您的活动被销毁之前接收到的最终呼叫。

这可能是因为活动正在完成(某人称为finish() ,或者系统暂时销毁活动实例以节省空间,您可以使用isFinishing()方法区分这两种情况。

一个Activity的onCreateonResumeonPause …. onDestroy等每个生命周期事件总是在单个线程上调用 – “主线程”。

简而言之,这个线程由一个队列支持,所有活动事件都被发送到该队列中。 这个线程可以按照插入的顺序执行所有这些事件。

如果你正在像onCreate()这样的生命周期callback之一中调用finish() ,那么将会添加一个“finish”消息到这个队列中,但是这个线程不能自由地select和执行“finish”动作,直到当前执行的方法返回即线程从当前任务中释放。

如果有两个活动A和B.而你的stream程从A> B进行; 和B = A调用finish()

然后,

你叫做finish()的方法将会像Mark提到的那样执行。 callbackstream程如下 –

  1. activity A onPause()
  2. 活动B的onRestart() > onStart() > onResume()
  3. 然后,真正的区别。 如果你没有从activity A调用finish() 只有Activity A onStop()会被调用。 而在这种情况下,我们从Activity A调用finish() 。 所以onStop()onDestroy()都将被调用activity A