Android 在finish()之后,Runnables将在多长时间内发布到活动';s处理程序是否继续执行?
我有一个Android 在finish()之后,Runnables将在多长时间内发布到活动';s处理程序是否继续执行?,android,android-activity,android-handler,Android,Android Activity,Android Handler,我有一个处理程序,它链接到UI线程。正如预期的那样,我可以post()Runnables到它,并让它们在UI线程上执行。我还有一个按钮,按下该按钮将调用活动上的finish() finish()如何影响UI处理程序的消息队列?它是否会处理队列中的所有消息,但不再接受更多消息?它会直接拒绝运行任何东西并立即终止(我有理由相信这不是真的)。在调用onDestroy()之前,它是否会继续允许向其发布Runnables?您应该假设活动堆栈只包含一个活动。您可以在应用程序仍处于活动状态且将被执行时,通过任
处理程序
,它链接到UI线程。正如预期的那样,我可以post()
Runnable
s到它,并让它们在UI线程上执行。我还有一个按钮,按下该按钮将调用活动
上的finish()
finish()
如何影响UI处理程序的消息队列?它是否会处理队列中的所有消息,但不再接受更多消息?它会直接拒绝运行任何东西并立即终止(我有理由相信这不是真的)。在调用onDestroy()
之前,它是否会继续允许向其发布Runnable
s?您应该假设活动堆栈只包含一个活动。您可以在应用程序仍处于活动状态且将被执行时,通过任何处理程序将可运行的发布到UI线程finish()
刚刚完成您的活动。你的UI线程不关心这个
但如果你完成了你的可见活动,Android会杀死你的应用程序,在那一刻,你所有的数据/可运行程序/线程都会被清除
所以,完成活动可能会导致停止(终止)UI线程,但通常Android会让你的应用程序工作一段时间,即使你没有可见的活动或正在运行的服务。如果你的应用程序缺乏资源,Android会立即关闭它。谢谢,我不知道即使在后台,发布到UI线程的可运行程序也会继续被处理。。方法有时可以帮助你