杀死片段或活动杀死背景线程?

时间:2014-03-14 22:45:23

标签: java android multithreading android-fragments

我开始在片段中的asynctask中做一些磁盘I / O.

打开一个新的活动/片段(在前一个片段之上)是否会杀死后台线程?我认为不是这个动作,但如果我以不同的方式杀死片段或者完成()活动会杀死后台线程吗?

我正在考虑将I / O放入带有广播接收器的服务中,但根据这里的答案可能没有必要。

1 个答案:

答案 0 :(得分:0)

根据官方文件:

  

理想情况下,AsyncTasks应该用于短操作(最多几秒钟。)如果需要保持线程长时间运行,强烈建议您使用java.util.concurrent提供的各种API。 pacakge,如Executor,ThreadPoolExecutor和FutureTask。

我很确定后台线程没有被破坏但在那时没用。假设某个活动启动了异步任务并更新了postExecute中按钮的文本。问题是如果用户做了一些意想不到的事情,比如旋转他的手机,则重新创建活动并且异步任务的上下文无效。所以它不会更新按钮文本。

请查看以下链接,以便更好地理解和解决方法:

http://blogactivity.wordpress.com/2011/09/01/proper-use-of-asynctask/