Лабораторная работа 1 По предмету «Разработка мобильных приложений» «Разработка sms manager а на android studio»
Download 360.78 Kb.
|
лаб 1
- Bu sahifa navigatsiya:
- Service
- Start service и Stop service
- Start service
- Start service : onStartCommand Сервис уже создан, onCreate
- Start service . onCreate onStartCommand Сервис запущен. Закрываем приложение кнопкой Назад. В логах тишина, onDestroy
- Stop service
someTask – здесь будем кодить работу для сервиса
Сервис, как и новые, создаваемые Activity необходимо прописать в манифесте. Делается это полностью аналогично. Жмете Add, выбираете Service. И в поле Name выбираете MyService. MainActivity.java:
Здесь у нас два метода, которые срабатывают при нажатии на кнопки Start service и Stop service. В них мы соответственно запускаем или останавливаем сервис методами startService и stopService. На вход передаем Intent, указывающий на сервис. Это очень похоже на то, как мы вызываем Activity методом startActivity. Давайте все сохраним и запустим приложение. Нажмем Start service и смотрим лог: onCreate onStartCommand Выполнился метод onCreate – сервис создался, и onStartCommand – сервис выполняет содержимое метода onStartCommand. Если мы теперь еще раз нажмем Start service: onStartCommand Сервис уже создан, onCreate не вызывается, выполняется только метод onStartCommand. Жмем Stop service onDestroy Сервис уничтожился. Убедимся, что сервис не зависит от приложения. Жмем Start service. onCreate onStartCommand Сервис запущен. Закрываем приложение кнопкой Назад. В логах тишина, onDestroy в сервисе не выполнился, сервис продолжает жить. Ему все равно, работает приложение, его запустившее или не работает. Долгим удержанием клавиши Домой выведем список последних приложений снова откроем наше приложение и нажмем Stop service. В логах: onDestroy Сервис уничтожен. Теперь попробуем выполнять что-нибудь осмысленное в onStartCommand. Перепишем метод someTask в MyService.java:
Будем с интервалом в 1 секунду выводить в лог записи из сервиса. Все сохраним, запустим и нажмем Start service: ProgressBar замер, экран стал недоступен. А логи идут: onCreate onStartCommand i = 1 i = 2 i = 3 i = 4 i = 5 Вывод – сервис работает в основном потоке и блокирует экран. Вынесем цикл с паузами в отдельный поток. И чтобы два раза не бегать, давайте заодно узнаем, что делает метод stopSelf. Перепишем метод someTask:
Мы вынесли код в отдельный поток и добавили вызов метода stopSelf – этот метод аналогичен методу stopService, он останавливает сервис, в котором был вызван. Все сохраняем, запускаем и жмем Start service. ProgressBar крутится, экран не блокирован, логи идут: onCreate onStartCommand i = 1 i = 2 i = 3 i = 4 i = 5 onDestroy Сервис создался, выполнил работу и сам остановился методом stopSelf. Download 360.78 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling