г. Москва, Милютинский пер., д.8, стр.2 Тел.: 8 (495) 999-70-33 |
|
|
Время работы: пн.-пт. с 9:00-21:00 сб.-вс. с 11:00-17:00 |
|
|
Активность MainActivity продолжает существовать, просто она невидима. Одним из способов возврата к MainActivity является щелчок на уведомлении, которое создала служба. Мы не хотим, чтобы в дополнение к невидимому экземпляру MainActivity был создан еще и новый экземпляр. Во избежание такой ситуации в файле манифеста для MainActivity атрибут android:launchMode устанавливается в singleTop. Это будет гарантировать, что вместо создания еще одного экземпляра MainActivity существующий невидимый экземпляр MainActivity будет перемещен на передний план и отображен.
После запуска этого приложения вы увидите две кнопки. Щелчок на кнопке Start Service (Запустить службу) приводит к созданию экземпляра службы и вызову onStartCommand(). Код записывает ряд сообщений в LogCat. Щелкните на кнопке Start Service несколько раз, даже очень быстро. Вы увидите, что для обработки каждого запроса создается поток. Каждому потоку ServiceWorker передается значение счетчика. Щелчок на кнопке Stop Service (Остановить службу) приводит к удалению службы, в результате чего в LogCat можно будет увидеть сообщения из метода stopService() класса MainActivity, метода onDestroy() класса BackgroundService и, возможно, из потоков ServiceWorker, если они были прерваны. Возможно вам понадобится калуга ремонт ноутбука.
Вы также должны заметить уведомляющее сообщение, когда служба запущена. При функционирующей службе щелкните на кнопке Back (Назад) из MainActivity и обратите внимание, что уведомляющее сообщение исчезло. Это значит, что служба также была удалена. Для перезапуска MainActivity щелкните на кнопке Start Service и возобновите работу службы. Теперь щелкните на кнопке Home. Активность MainActivity перестанет отображаться в представлении, однако уведомление останется, а это означает, что служба по-прежнему существует. Щелкните на уведомлении, и вы снова увидите MainActivity.