Подтвердить что ты не робот

Сервис: onTaskRemoved не вызывается, если он запущен с bindService

У меня есть служба, в которой был реализован метод onTaskRemoved().
Когда служба запускается с помощью startService() функция onTaskRemoved() вызывается, когда приложение удаляется из списка последних приложений.

Но если служба запускается с помощью bindService(), то onTaskRemoved() никогда не onTaskRemoved().

Как я могу сделать вызов службы onTaskRemoved() если приложение было удалено из списка недавних приложений смахиванием после того, как оно было запущено с помощью bindService()?

Android вызывает следующие методы жизненного цикла, если они начинаются с:

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()
4b9b3361

Ответ 1

Служба может быть связана или запущена, или и то, и другое. Это зависит от того, как вы реализуете onStartCommand и onBind, скажем, документы.

http://developer.android.com/guide/components/services.html

Но если вы хотите, чтобы ваша служба делала и останавливалась и разговаривала с клиентами через IBinder, просто запустите службу, а затем привяжите ее.

startService(new Intent(context, CustomerService.class));
// Bind to the service
bindService(new Intent(context, CustomerService.class),
                        mConnection, Context.BIND_AUTO_CREATE);