Я использую IntentService для загрузки изображений на сервер. Моя проблема заключается в том, что я не знаю, как/когда остановить службу. Когда я вызываю stopself() в onHandleIntent (Intent..), все объекты, ожидающие очереди IntentService, удаляются. Но я не хочу останавливать службу из-за активности, потому что хочу завершить загрузку, даже если мое приложение не работает.
Правильный способ остановить IntentService
Ответ 1
Моя проблема в том, что я не знаю, как/когда остановить службу.
IntentService
автоматически останавливается, когда заканчивается onHandleIntent()
, если больше не было отправлено команд, когда выполнялся onHandleIntent()
. Следовательно, вы не вручную останавливаете IntentService
самостоятельно.
Когда я вызываю stopself() в onHandleIntent (Intent..), все намерения, ожидающие очереди IntentService, удаляются.
Вот почему вы этого не делаете.
Но я не хочу останавливать службу из-за активности, потому что хочу завершить загрузку, даже если мое приложение не работает.
Затем вы можете остановить IntentService
.
Ответ 2
An IntentService
останавливается, когда ему не нужно больше Intent
(заданий) для обработки. Он выполняет stopSelf(startId)
для каждого Intent
(задание). Посмотрите на источник IntentService
или Extending the Service Class
здесь http://developer.android.com/guide/topics/fundamentals/services.html