防止Android服务在解除绑定后被销毁

时间:2012-04-29 08:31:43

标签: android android-service

我有一个活动通过调用startService方法启动服务的场景:ActivityService都在同一个包中。然后,服务根据其配置参数,可以启动包含在不同包中的活动(让我们称之为ExternalActivity):此活动通过bindService绑定服务;一旦此活动完成其任务,它将调用unbindService方法,如下所示......

// method of ExternalActivity
@Override
public void onDestroy() {
    super.onDestroy();
    unbindService(...);
}

因此,该服务也被销毁。 是否有可能避免破坏服务?

1 个答案:

答案 0 :(得分:11)

  

因此,该服务也被销毁。

正如yorkw所解释的那样,只有当以下两个都成立时,服务才会被销毁:

  1. 所有对bindService()的来电都与unbindService()的相应来电相匹配。

  2. 如果有人打电话给startService(),有人还会调用stopService()或称为stopSelf()的服务。

  3.   

    是否有可能避免破坏服务?

    找到更好的时间致电stopService()stopSelf(),无论您使用的是哪一种。