Производство дисков

22.08.2017

В пользовательском интерфейсе отображаются две кнопки, одна для вызова startService(), а вторая — для вызова stopService(). Можно было бы выбрать элемент ToggleButton, но тогда не было возможности многократно вызывать startService(). Это важный момент. Между startService() и stopService() нет отношения “один к одному”. При вызове stopService() объект службы будет уничтожен, равно как и все потоки, созданные во всех вызовах startService(). В нашем примере требуется, чтобы минимальной версией SDK (minSdkVersion) была 5, поскольку вместо onStart() используется более новый метод onStartCommand(). Таким образом, мы также можем получить преимущество от применения атрибута android:onClick дескриптора Button в XML-файле.

Класс MainActivity выглядит подобно другим активностям, которые были показаны ранее. Простой метод onCreate() устанавливает пользовательский интерфейс из файла компоновки main.xml. Метод doClick() обрабатывает обратные вызовы кнопок. В этом примере при щелчке на кнопке Start Service (Запустить службу) вызывается метод startService(), а щелчке на кнопке Stop Service (Остановить службу) — метод stopService (). При запуске службе необходимо передать некоторые данные, что и делается через намерение. Здесь данные передаются в дополнительном пакете, но можно было бы добавить их с использованием setData(), если есть URI. При останове службы просматривается возвращаемый результат. Обычно он должен быть равен true, однако если служба не запускалась, он равен false. Наконец, если активность уничтожается, служба останавливается в методе onDestroy(). Возможно вас заинтересует производство дисков.

В дополнение к обычным дескрипторам в файле манифеста теперь имеется дескриптор . Поскольку это локальная служба, которая вызывается явно с использованием имени класса, в дескриптор не придется помещать много информации. Все, что потребуется — это имя службы. Но есть еще один момент, который следует отметить относительно файла манифеста. Служба создает уведомление, так что пользователь может вернуться к MainActivity, например, щелкнув на кнопке Home (Домой) в MainActivity, без останова службы.








Нас выбрали

partners3