如何服务于Android的使用IntentService重启(How to restart Serv

2019-08-01 04:52发布

我能够阻止我ServiceA(它使用开始AlarmManager )当IntentService被从发送广播运行IntentService广播接收机。 我要开始同ServiceA后再次我IntentService完成他的工作。

前我有服务SrvA ,IntentService IntSrvB和广播接收器MyBcr 。当我IntSrvB跑步,我能够停止SrvA 。我的问题是如何重新启动SrvA再次当我IntSrvB完成他的工作。

注意- ServA使用开始AlarmManager

Answer 1:

编辑:基于您的代码,你可以通过你的变量myIntentmyIntent2到您的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是能够禁用和启用其功能-然后调用而不是启动和停止服务,方法。



文章来源: How to restart Service using IntentService in android