Я пытаюсь разработать приложение для Android, состоящее из Activity и Service. Задание запускает процесс на службе неопределенной продолжительности, который будет закрыт из Activity. Не следует использовать подкласс IntentService, но напрямую Service. Контролируется onStartCommand и OnDestroy.Деятельность, обслуживание и какое общение между ними?
Мне, очевидно, необходимо передать информацию из Деятельности на службу: состояние службы и некоторые строки.
Я попытался использовать LocalBrodcastManager, но когда вы поворачиваете устройства или когда действие переходит в состояние onPause, сообщение будет потеряно. Я попытался следовать нескольким примерам, но с небольшим успехом. Это, в частности, я не мог завершить это из-за недостающей информации, очевидно, считающейся очевидной, но которая для меня не очевидна: https://developer.android.com/training/run-background-service/report-status.html
Затем я попытался использовать Messenger через IBinder (Example: Communication between Activity and Service using Messaging), но программа кажется немного сложной и я не могу соответствовать моим потребностям.
Что мне нужно - это запустить службу из моей активности (возможно, автоматически привязать?), В случае использования Messenger, Служба должна сигнализировать, что активность активна, тогда служба записывает некоторые точки через GPS LocationListener, записывает ее в файл и должен указать, снова активность, данные, которые записываются, размер файла и т. д.
Что вы рекомендуете использовать для передачи этой информации и можете ли вы предоставить мне пример?
Вы можете настроить свое приложение так, чтобы изменение ориентации дисплея не убивало и не перезапускало действие. Это может быть самый простой способ решить вашу проблему. –
Интересно, но что я должен использовать? Я думал, что это невозможно, и для этого было обязательно использовать savedInstanceState ... – Paolovip
Просто объявите в манифесте, что ваша 'Activity' будет обрабатывать само изменение ориентации. Переопределите 'onConfigurationChanged()', и когда это вызвано, вы можете сбросить представление содержимого и/или изменить макет. –