问题
有人可以提供一个描述当anActivity
调用其finish()
方法时会发生什么?
它会立即退出,还是完成调用它的函数?
#1 热门回答(108 赞)
它是立即退出还是完成调用它的函数?
调用finish()
的方法将运行完成。在将控制权返回给Android之前,finish()
操作甚至不会开始。
#2 热门回答(15 赞)
每个生命周期事件如onCreate
,onResume
,onPause
.... onDestroy
一个Activity总是在一个线程上调用 - "主线程"。
简而言之,该线程由Queue支持,所有活动事件都将发布到该Queue中。该线程可以按插入顺序执行所有这些事件。
如果你在生命周期回调之一(例如onCreate()
)中调用finish()
..."完成"消息将被添加到此队列但是线程无法自由选择并执行"完成"操作,直到当前正在执行的方法返回,即线程从当前释放任务。
#3 热门回答(13 赞)
ondestroy()
是在你的活动被销毁之前收到的最后一个电话。
这可能是因为活动正在完成(有人称之为finish()
,或者因为系统暂时销毁此活动实例以节省空间。你可以使用isFinishing()
方法区分这两种情况。