Activity.finish()如何在Android中运行?

ran*_*vee 103 java android

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

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

Com*_*are 118

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

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

  • 那么如何完成StartAvtivityforResults()调用的活动而不完成? (3认同)

小智 18

每一个生命周期事件一样onCreate,onResume,onPause... onDestroy的活动总是叫上一个单独的线程-在"主线程".

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

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


use*_*295 13

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

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