在finish()之后多长时间将Runnables发布到Activity的Handler继续执行?

Dor*_*oro 3 android android-activity android-handler

我有一个Handler链接到UI线程.正如所料,我可以post() Runnable使用它并让它们在UI线程上执行.我也有一个按钮,按下该按钮将调用时finish()Activity.

如何finish()影响UI处理程序的消息队列?它会处理队列中的所有消息但不再接受吗?它会直言不讳地拒绝运行并立即终止(我有理由相信这不是真的).是否会继续允许Runnables发布到它直到onDestroy()被调用?您应该假设活动堆栈只包含一个活动.

Leo*_*dos 5

您可以在应用程序处于活动状态时将Runnables 发布到UI线程,Handler然后执行它们.finish()刚刚结束你的活动.您的UI线程并不关心这一点.

但是如果你完成了可见的活动,Android就可以杀死你的应用程序,那时你的所有数据/ runnables/threads都将被清除掉.

因此,整理活动可以导致停止(终止)UI线程,但通常Android会使您的应用程序保持一段时间,即使您没有可见的活动或正在运行的服务.如果资源匮乏,Android会立即终止您的应用.