我有一个Service
,我在一个Thread中运行一个任务。我多次调用Service
,显然它会创建相应数量的线程。
如果没有人Thread
正在投放,我怎么知道所以我可以致电stopSelf()
?
答案 0 :(得分:1)
最简单的方法是使您的服务子类IntentService。这是一种特殊的服务,它将在后台线程中执行工作,并在没有更多工作要执行时自动停止服务。每个服务都有一个单独的线程,您在清单中声明。您所要做的就是通过实现onHandleIntent()来确定您想要执行哪种工作,会自动在后台线程中为每个传递给它的Intent运行。
答案 1 :(得分:0)
您可以跟踪数组中正在运行的线程。当每个线程完成时,它应该从数组中删除自己并调用一个方法来检查是否有任何正在运行的线程。该方法只检查正在运行的线程列表是否为空,如果是,则调用stopSelf()
。
如果符合您的需要,请使用IntentService
。