问题

有人可以提供一个描述当anActivity调用其finish()方法时会发生什么?

它会立即退出,还是完成调用它的函数?


#1 热门回答(108 赞)

它是立即退出还是完成调用它的函数?

调用finish()的方法将运行完成。在将控制权返回给Android之前,finish()操作甚至不会开始。


#2 热门回答(15 赞)

每个生命周期事件如onCreate,onResume,onPause .... onDestroy一个Activity总是在一个线程上调用 - "主线程"。

简而言之,该线程由Queue支持,所有活动事件都将发布到该Queue中。该线程可以按插入顺序执行所有这些事件。

如果你在生命周期回调之一(例如onCreate())中调用finish() ..."完成"消息将被添加到此队列但是线程无法自由选择并执行"完成"操作,直到当前正在执行的方法返回,即线程从当前释放任务。


#3 热门回答(13 赞)

ondestroy()是在你的活动被销毁之前收到的最后一个电话。

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


原文链接