我需要在一个单独的线程上运行一个服务。这是因为它访问一个可以花费5-10秒的get服务,而我不想获得ANR。我也将绑定到这项服务。我找到了一种方法,可以在一个单独的线程中启动该服务,如下所示:
Thread t = new Thread(new Runnable() {
public void run() {
//Launch and/or Bind to service here
}
});
t.start();但是,我相信这只会在一个新线程中运行启动代码,而服务本身则在主线程中运行。那么,我如何在另一个线程中运行服务中的所有代码呢?
提前感谢
发布于 2011-04-23 15:43:37
您可以使用IntentService
IntentService是按需处理异步请求(表示为意图)的服务的基类。客户端通过startService(意向)调用发送请求;服务是根据需要启动的,使用工作线程依次处理每个意图,并在工作结束时停止自身。
http://developer.android.com/reference/android/app/IntentService.html
https://stackoverflow.com/questions/5765135
复制相似问题