Android运行正确的后台操作

时间:2018-07-15 11:27:25

标签: java android multithreading

如何在不导致内存泄漏或阻塞其他线程的情况下正确运行后台操作?我首先使用了asynctask,但是它使用的线程池在后台执行5个任务后会阻塞,并且传递弱引用不能解决内存泄漏的问题。所以我需要在客户端和服务器之间传输数据。我认为我应该使用实现Runnable的类,并在活动中以ExecutorService(singleThreadExecutor)开始运行。然后我打电话给提交。我需要从ExecutorService获取“ Future”,以便在活动调用onStop()时取消线程。如果有人对此有更好的解决方案,请帮助我。要求是它应该阻止其他线程,并且如果活动被破坏,则应该取消我的权限。

1 个答案:

答案 0 :(得分:0)

我认为

AsyncTask是处理线程的最佳方法。 我不知道您要执行哪种操作,但是请检查intent service

Runnable在主线程上运行,因此,如果您的活动死亡,它也会死亡,或者您可以擦除堆栈处理程序。removeCallbacksAndMessages(null);。

玩Thread可能很棘手,请注意您所做的事情:)

在这种情况下,您需要建立一个循环来检查中断的异常:)

祝你好运!