Я сделал приложение, которое запускает долгоживущий фоновый сервис.Иногда само приложение закрывается, и служба продолжает работать, как я и хочу.
Проблема в том, что я не знаю, как управлять этой службой после закрытия приложения вызывающей стороны.Например, если пользователи повторно открыли приложение, я бы хотел дать им возможность убить этот процесс или оставить его запущенным.
Я могу определить, работает ли служба, с помощью следующегофункция (взято из этого решения ):
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;
}
Я пытался затем вызвать эту строку из действия, но ничего не сделал:
if(isMyServiceRunning(MyService.class)) {
stopService(new Intent(this, MyService.class));
}