Управление фоновым сервисом из другого экземпляра приложения - PullRequest
0 голосов
/ 02 декабря 2018

Я сделал приложение, которое запускает долгоживущий фоновый сервис.Иногда само приложение закрывается, и служба продолжает работать, как я и хочу.

Проблема в том, что я не знаю, как управлять этой службой после закрытия приложения вызывающей стороны.Например, если пользователи повторно открыли приложение, я бы хотел дать им возможность убить этот процесс или оставить его запущенным.

Я могу определить, работает ли служба, с помощью следующегофункция (взято из этого решения ):

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));
}
...