Поэтому нам нужно остановить службу, когда задача удалена из последних. Для этого вы можете взглянуть на решение «остановить службу при удалении приложения через последнее приложение» .
В основном предлагает остановить службу при вызове public void onTaskRemoved(Intent rootIntent)
.
1). В свой манифест добавьте атрибут stopWithTask, в котором вы определите свой сервис:
<service
android:enabled="true"
android:name=".YourService"
android:exported="false"
android:stopWithTask="true" />
2). Если вышеупомянутый подход делает работу тогда, делает реверс
<service
android:enabled="true"
android:name=".MyService"
android:exported="false"
android:stopWithTask="false" /> //change to false
Таким образом, будет вызван метод вашего сервиса onTaskRemoved. (Помните, что он не будет вызываться, если вы установите для stopWithTask значение true).
public class YourService 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();
}
}