Ответ 1
Я хочу остановить службу, когда пользователь удаляет приложение из недавний список.
Да, вы можете сделать это, используя флаг stopWithTask
как true
для службы в файле манифеста.
Пример:
<service
android:enabled="true"
android:name=".MyService"
android:exported="false"
android:stopWithTask="true" />
ИЛИ
Если вам нужно удалить событие из недавнего списка и сделать что-то до остановки службы, вы можете использовать это:
<service
android:enabled="true"
android:name=".MyService"
android:exported="false"
android:stopWithTask="false" />
Таким образом будет вызван ваш метод обслуживания onTaskRemoved
. (Помните, что он не будет вызываться, если вы установите stopWithTask
на true
).
public class MyService extends Service {
@Override
public void onStartService() {
//your code
}
@Override
public void onTaskRemoved(Intent rootIntent) {
System.out.println("onTaskRemoved called");
super.onTaskRemoved(rootIntent);
//do something you want
//stop service
this.stopSelf();
}
}
Надеюсь, что это поможет.