Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When can onTaskRemoved() be called?

The docs state that

This is called if the service is currently running and the user has removed a task that comes from the service's application.

It seems as if it is only called when the app is swiped away from the recent task list. Pressing the back button until all Activities are destroyed in the task does not cause this to be called. Are there other scenarios where this could be called?

like image 848
Steve M Avatar asked Oct 16 '16 16:10

Steve M


1 Answers

Pressing the back button until all Activities are destroyed in the task does not cause this to be called.

Finishing Activities by pressing the back button doesn't mean that running services and the application process will be terminated. Services keep running (if not explicitly or self stopped) unless the system kills the process, so Service.onTaskRemoved() isn't called in the case of finishing Activities as you correctly stated.

Are there other scenarios where this could be called?

No, but the one described in the documentation, where "the user has removed a task" means swiping the app out from the task list *. Stopping the Service from the phone's settings does not trigger Service.onTaskRemoved().


* AFAIK, in rare cases Service.onTaskRemoved() may not be called.

like image 103
Onik Avatar answered Oct 11 '22 03:10

Onik