0

我可以通过向广播接收器发送广播来停止我的 ServiceA(它开始使用AlarmManager) 。完成他的工作后,我想再次启动相同的 ServiceA 。IntentServiceIntentServiceIntentService

前我有服务SrvA,意图服务IntSrvB和广播接收器MyBcr。当我IntSrvB运行时,我能够停止。我的问题是当我完成他的工作后SrvA如何重新启动。SrvAIntSrvB

注意 -ServA开始使用AlarmManager.

4

1 回答 1

0

编辑:根据您的代码,您可以将变量myIntent&传递myIntent2到您的IntentService类中 - 然后您可以使用它们重新创建与AlarmManager.

请注意,您似乎为每个意图设置了一个警报,该警报重复一次“现在”,然后每隔一段时间重复一次。然后您再次隐式启动服务,即您“现在”启动服务两次。这看起来像是一个错误 - 查看AlarmManager.setRepeating()方法的文档。


下面的原始答案...

把它放进你的IntentService

@Override
protected void onHandleIntent(Intent intent)
{
    try
    {
        // STOP SERVICE

        // DO YOUR WORK HERE
    }
    finally
    {
        // START SERVICE
    }

}

您已经拥有停止服务的代码。您可以从您的“启动服务”代码中获取 BroadcastReceiver并将其放在 finally 块中。

onDestroy()一般不建议在 Android 上覆盖。

注意:我认为这不是设计您的应用程序的最佳方式,但我正在回答您的问题。就个人而言,我的 mainService中有一个方法可以禁用和启用其功能 - 然后调用该方法而不是启动和停止服务。

于 2012-10-08T05:53:16.067 回答