我能够阻止我ServiceA(它使用开始AlarmManager
)当IntentService
被从发送广播运行IntentService
广播接收机。 我要开始同ServiceA后再次我IntentService
完成他的工作。
前我有服务SrvA
,IntentService IntSrvB
和广播接收器MyBcr
。当我IntSrvB
跑步,我能够停止SrvA
。我的问题是如何重新启动SrvA
再次当我IntSrvB
完成他的工作。
注意- ServA
使用开始AlarmManager
。
编辑:基于您的代码,你可以通过你的变量myIntent
& myIntent2
到您的IntentService
类-那么你可以使用它们来重建具有使用挂起的意图的精确复制品AlarmManager
。
请注意,它看起来像您所设置的再一次重复“NOW”,然后在之后的时间间隔各意向报警。 然后,您隐式启动该服务,即重新启动服务两次“NOW”。 这看起来像一个错误-看文档的AlarmManager.setRepeating()方法。
原来答案在下面...
要把它放到你的IntentService
:
@Override
protected void onHandleIntent(Intent intent)
{
try
{
// STOP SERVICE
// DO YOUR WORK HERE
}
finally
{
// START SERVICE
}
}
你已经拥有的代码停止服务。 你可以从你的“启动服务”的代码BroadcastReceiver
,并把它放在finally块。
我不会推荐压倒一切onDestroy()
在Android上一般。
注 :我不认为这是设计您的应用程序的最佳方式,但我回答你的问题。 就个人而言,我会在我的主要方法Service
是能够禁用和启用其功能-然后调用而不是启动和停止服务,方法。