I have a Service in which the onTaskRemoved()
method has been implemented.
When the service is started with startService()
the function onTaskRemoved()
is called when the app is removed from the recent-apps-list by swipe.
But if the service is started with bindService()
, then onTaskRemoved()
never called.
How can I make the Service call onTaskRemoved()
when app removed from recent-apps-list by swipe after it has been started with bindService()
?
Android calls the following lifecycle methods if started with:
1. bindService():
Activity﹕ onCreate()
CustomService﹕ onCreate()
CustomService﹕ onStart()
CustomService﹕ onStartCommand()
CustomService﹕ onBind()
// Here we swipe to remove app from recent-apps-list
CustomService﹕ onTrimMemory()
2. startService():
ActivityA﹕ onCreate()
CustomService﹕ onCreate()
CustomService﹕ onStart()
CustomService﹕ onStartCommand()
CustomService﹕ onBind()
// Swipe to remove app from recent-apps-list
CustomService﹕ onTrimMemory()
CustomService﹕ onTaskRemoved() // <=====
CustomService﹕ onUnbind()
A service can be bound or started or both. It depends on how you implement onStartCommand
and onBind
say the docs.
http://developer.android.com/guide/components/services.html
But if you want your service to do both stay around and talk with clients over an IBinder then simply start the service and then bind to it.
startService(new Intent(context, CustomerService.class));
// Bind to the service
bindService(new Intent(context, CustomerService.class),
mConnection, Context.BIND_AUTO_CREATE);