繁体   English   中英

CountDownLatch是否可以在Android服务中使用?

[英]Does CountDownLatch work in Android Service?

抱歉,没有太多代码可发布。 我有以下程序结构。

MyService{

initialize CountDownLatch to 2
call InterntService1 - in the end of IntentService1 decrement the latch's counter
call IntentService2 -in the end of IntentService2 decrement the latch's counter
latch.await()
}

我面临的问题是:只要线程服务(作为应用程序主线程的一部分)开始等待,就根本不会执行Intent服务。 它只是无限地等待在那里。 还有其他人面临同样的问题。 我知道我可以使用处理程序/其他某种机制。 但是我的问题是,为什么会这样?

从developer.android.com:

警告 :服务在其宿主进程的主线程中运行-该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定)。 这意味着,如果您的服务要执行任何CPU密集型工作或阻止操作(例如MP3播放或联网),则应在服务内创建一个新线程来执行该工作。 通过使用单独的线程,可以减少应用程序无响应(ANR)错误的风险,并且应用程序的主线程可以保持专用于用户与活动的交互。

我认为您需要在服务代码上创建并运行一个工作线程。 在以下网址http://developer.android.com/guide/components/services.html中查看“扩展服务类”部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM