2016-09-26 63 views
0

应该在服务中使用什么来摆脱UI线程?解决方案从主线程在服务中移动?

对于这两个启动的服务和绑定的服务

  1. 装载机
  2. 的AsyncTask
  3. 简单的线程
  4. Robospice图书馆
  5. 还是其他什么东西

我希望我的服务,即使如此,仍继续运行该应用程序在后台。

我想服务运行时间不定。

谢谢。

+0

6)[IntentService](https://developer.android.com/reference/android/app/IntentService.html)这取决于什么你在做。使用适合您需求的产品。 – codeMagic

+0

子类'Service'和启动后台'Thread'有 – Blackbelt

+0

......你也应该remeber约wakelocks ...... – Selvin

回答

0

使用IntentService。它是Service的一个子类。它会自动在后台线程中运行代码。执行完成后它自行清除。您不必停止IntentService。

0

如果你需要运行一个长期的任务,并停止后的服务,你应该使用IntentService - 它在不同的thred运行和停止本身工作完成后。从您的描述中可以看出,您希望Service无限期地运行。为此,你应该使用RxJava库。它具有执行并发操作的许多优点,请参阅文档以获取更多详细信息。 为主线程提供两个线程池和调度程序; 轻松允许同步并发任务 - 您可以执行一个任务,等待另一个任务等,而无需使用纯java的锁。 您可以在一个线程上运行作业,然后在另一个线程上处理结果等; 您可以以反应方式处理结果; 您可以从HandlerThread创建自己的调度程序,并为所有任务使用单线程

+0

谢谢。是的,我希望我的服务无限期地运行。你能请我带一些好的链接。因为我不知道RxJava,我也不知道这是否是离开服务主线程的最佳方式。 –