启动和绑定服务有两个问题。
我有一个启动绑定服务,可以将gps位置更新为api。该服务由活动中的按钮启动和停止。
我有一个地图活动来显示来自gps的当前位置更新。 map活动通过bindService()绑定到服务。我正在使用messenger从服务中接收数据。
该服务正常工作,直到活动打开时绑定到地图活动。当服务被销毁并且服务应该继续存在时,该活动应该从服务解除绑定。
问题是服务在销毁时会随着活动而被杀死,有时则不会(我不知道为什么)。我在活动的ondestroy()中实现了unbindService()。
第二部分是即使从任务管理器中删除应用程序,服务也应该继续存在。 我已将它作为前台服务启动,但它不起作用。 我尝试在远程进程中实现该服务并且它可以工作,但是我用来检查服务是否正在运行的代码返回null(我也需要这个部分)。 我尝试在onTaskRemoved()中重新启动它作为前台服务,它不起作用。
如果有关于启动和绑定服务的任何体面的教程,我也会这样做。
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}