I'm working on a music app, and I want stop the service when user removes the application from the recent list and not when the first activity is destroyed(because when user clicks back back until app minimizes, in that case first activity is also getting destroyed). Please help.
I want stop the service when user removes the application from the recent list.
Yes, you can either do that using stopWithTask
flag as true
for Service in Manifest file.
Example:
<service
android:enabled="true"
android:name=".MyService"
android:exported="false"
android:stopWithTask="true" />
OR
If you need event of application being removed from recent list, and do something before stopping service, you can use this:
<service
android:enabled="true"
android:name=".MyService"
android:exported="false"
android:stopWithTask="false" />
So your service's method onTaskRemoved
will be called. (Remember, it won't be called if you set stopWithTask
to 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();
}
}
Hope this helps.