启动处理程序线程并完成活动

时间:2016-06-12 18:44:39

标签: java android

如果我们在一个活动中启动处理程序线程/线程,然后当我们按下后退按钮时活动被销毁,那么处理程序线程会发生什么?

它还处于运行状态吗?

如果是,那么线程执行何时停止?

2 个答案:

答案 0 :(得分:0)

在作业完成之前,线程不会被销毁。因此,在关闭活动之前,请确保完成所有工作。因为该线程可能包含任何视图引用,并且它可能会在作业完成后尝试访问它。可以通过调用

来停止HandlerThread
  

thread.quitSafely();

这可以确保在线程停止之前处理所有挂起的消息。

答案 1 :(得分:0)

简单地说,您的线程处于运行状态。

在onPause之后保持线程运行实际上是不好的做法。原因是在onPause之后你的应用程序可能会在你无法知道的情况下随时丢失内存,因此你无法自行清理。

正确的方法是停止线程onPause并在onResume上重新创建它。如果您需要州,您可以使用Android内置的saveState方法或设置,或以其中任何一种方式保存。

您的相关帖子是herehere