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