Как проверить, работает ли мое приложение в службе Android?

Я начинаю разрабатывать липкую службу Android для своего приложения с Delphi 10.1 Berlin, но я не нашел ни одного учебника или книги, которые бы в нее вошли, поэтому я спрашиваю:

Какой самый простой способ определить, работает ли мое приложение или оно было убито ОС/пользователем?


person Maurício Lima    schedule 20.09.2017    source источник
comment
взгляните на этот ответ stackoverflow.com/a/12172218/3023833   -  person Mostafa Anter    schedule 21.09.2017
comment
Возможный дубликат Проверьте, запущена ли активность из службы   -  person Cristian Gomez    schedule 21.09.2017
comment
В книге Павла Гловацкого «Эксперт Delphi» есть много тем и сервисы Android в одной из них!   -  person Alberto Miola    schedule 21.09.2017
comment
Зачем вам это знать?   -  person David Wasser    schedule 21.09.2017


Ответы (1)


Вы можете найти идентификатор процесса по имени пакета и посмотреть, активен ли он.

ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> pids = am.getRunningAppProcesses();
int processid = 0;
for (int i = 0; i < pids.size(); i++) {
    ActivityManager.RunningAppProcessInfo info = pids.get(i);
    if (info.processName.equalsIgnoreCase("packageNameSearchingFor")) {
       processid = info.pid; //found it, we are running
    } 
}

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

person Sam    schedule 21.09.2017