Как остановить сервис после завершения AsyncTask? - PullRequest
1 голос
/ 26 июня 2010

У меня есть сервис, который запрашивает другой класс, который запускает AsyncTask

Сервис-> Класс погоды-> Выполнить метод-> Asynctask-> Выполнить

, который запускается в службепо

new Weather(this).execute(); // the execute is a method of the class, not of the AsyncTask

как определить в Сервисе, что AsyncTask завершил, чтобы я мог вызвать stopSelf?

Ответы [ 2 ]

3 голосов
/ 26 июня 2010

Вы можете использовать stopService (намерение) в этом случае.

0 голосов
/ 24 октября 2012

Подход, используемый в настоящее время в нашем приложении, заключается в регистрации одного BroadcastReceiver для android.app.Service, который настроен на прослушивание широковещательных событий, инициированных из порожденного базового AsyncTask#onPostExecute. Это выгодно в нашем сценарии, так как наш сервис порождает три AsyncTasks, и мы хотели бы остановить родительский сервис, когда все три AsyncTasks завершены, то есть у нас есть три попадания на наш уровень сервиса BroadcastReceiver.

Думаю, я бы добавил это сюда после того, как наткнулся на этот вопрос еще долго после того, как на него ответили, но, надеюсь, он может помочь кому-то еще ...

...