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

enz*_*m83 17 android android-service

我有一项活动通过调用启动的服务的情景startService方法:无论是ActivityService是在同一个包.然后,服务根据其配置参数,可以启动ExternalActivity包含在不同包中的活动(让我们称之为):此活动通过以下方式绑定服务bindService; 一旦这个活动完成了它的任务,就会调用以下unbindService方法......

// method of ExternalActivity
@Override
public void onDestroy() {
    super.onDestroy();
    unbindService(...);
}
Run Code Online (Sandbox Code Playgroud)

结果,该服务也被销毁.是否有可能避免破坏服务?

Com*_*are 12

结果,该服务也被销毁.

正如yorkw所解释的那样,只有满足以下两个条件时,服务才会被销毁:

  1. 所有呼叫bindService()都被相应的呼叫匹配unbindService().

  2. 如果有人打来电话startService(),有人也打电话stopService()或打电话stopSelf().

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

找一个更好的时间来打电话,stopService()或者stopSelf()你正在使用的那个.

  • 我通过覆盖`onStartCommand`方法修复了故障,所以它现在返回`START_STICKY`. (3认同)