2012-03-01 2 views
1

Я запускаю приемник BroadCast при изменении сетевых изменений в Android. BroadCast Receiver Запускает службу, которая обрабатывает задачу Async для извлечения данных с сервера. Проблема немного странная, когда я тестирую на своем устройстве, метод Service OnCreate запускается в первый раз «Ура!». но когда я отсоединяю сеть и снова пытаюсь подключиться. BroadCast - это Чтение, но не Служба. Я что-то упустил? или Это ошибка? или должны ли быть какие-либо намерения при запуске службы? Пожалуйста помогите.Класс обслуживания Android - OnCreate, вызываемый только один раз

+0

Я мог бы также заметить, что метод OnStart работает отлично и начинает каждый раз, когда он вызывается, но не OnCreate! может кто-нибудь сказать мне, почему это? – Wesley

ответ

7

Метод OnCreate в службе работает только один раз до всего срока службы. Тем не менее, звонки на onStartCommand можно сделать несколько раз, позвонив по телефону startService. Если ваша услуга уничтожена, а затем снова запустите, onCreate будет вызываться снова.

Это то, что this документ говорит:

onCreate()

The system calls this method when the service is first created, to perform one-time setup procedures (before it calls either onStartCommand() or onBind()). If the service is already running, this method is not called.

+0

Эй, спасибо большое за ответ! – Wesley

+0

Только 1 раз в onCreate? Я отлаживаю свое приложение и звоню каждый раз – delive

+0

Теперь я попытался с отладкой, и я не вижу прироста интернета ... Я запутался ... – delive

2

onCreate Метод обслуживания будет называться при первом запуске службы.

Если вы не остановить службу по StopService или stopSelf методов, сервис будет запущен и OnCreate не будет вызываться снова.

Но onStartCommand будет вызываться каждый раз, когда вы звоните StartService

Чтобы знать больше: Android Services

+0

Есть ли способ заставить onCreate вызываться, даже когда я заканчиваю свое обслуживание с помощью stopService/stopSelf? –

Смежные вопросы