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

Правильный способ остановить IntentService

Я использую IntentService для загрузки изображений на сервер. Моя проблема заключается в том, что я не знаю, как/когда остановить службу. Когда я вызываю stopself() в onHandleIntent (Intent..), все объекты, ожидающие очереди IntentService, удаляются. Но я не хочу останавливать службу из-за активности, потому что хочу завершить загрузку, даже если мое приложение не работает.

4b9b3361

Ответ 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