Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
432 views
in Technique[技术] by (71.8m points)

android - 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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...