我能够停止我的 ServiceA(它开始使用AlarmManager
)当IntentService
正在通过发送广播来运行IntentService
到广播接收器。我想在我之后再次启动相同的 ServiceAIntentService
完成了他的工作。
前我有服务SrvA
,意向服务IntSrvB
和广播接收器MyBcr
。当我的IntSrvB
跑步我能停下来SrvA
.我的问题是如何重新启动SrvA
再次当我的IntSrvB
完成他的工作。
Note-ServA
开始使用AlarmManager
.
EDIT:根据您的代码,您可以传递变量myIntent
& myIntent2
进入你的IntentService
类 - 然后您可以使用它们重新创建与AlarmManager
.
请注意,看起来您为每个意图设置了一个警报,该警报“现在”重复一次,然后每隔一段时间重复一次。然后,您再次隐式启动该服务,即“现在”启动该服务两次。这看起来像是一个错误 - 查看文档AlarmManager.setRepeating() http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating%28int,%20long,%20long,%20android.app.PendingIntent%29 method.
原答案如下...
把这个放入你的IntentService
:
@Override
protected void onHandleIntent(Intent intent)
{
try
{
// STOP SERVICE
// DO YOUR WORK HERE
}
finally
{
// START SERVICE
}
}
您已经拥有停止服务的代码。您可以从您的帐户中获取“启动服务”代码BroadcastReceiver
并将其放入finally块中。
我不建议覆盖onDestroy()
一般在Android上。
NOTE:我认为这不是设计应用程序的最佳方式,但我正在回答您的问题。就我个人而言,我的 main 中有一个方法Service
能够禁用和启用其功能 - 然后调用该方法而不是启动和停止服务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)