Я использую 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