У меня есть приложение, которое проверяет местоположение устройства в службе и вошло ли оно в одну из множества предопределенных областей.Служба имеет ссылку обратно на действие, когда действие открыто и когда действие переводится в фоновый режим, onPause устанавливает для ссылки службы действие на ноль.Когда ссылка на действие имеет значение null, уведомление отправляется с pendingIntent к действию.
Проблема, с которой я сталкиваюсь, заключается в том, что при повторном открытии действия после нажатия на элемент уведомления используются методы onCreate или onRestoreInstanceStateне вызывается, и вызываемый onResume не имеет ссылки на объект области, который был добавлен в pendingIntent.
Я могу заставить вещи работать, добавив флаг внутри службы, указывающий, присоединено ли действиеили не вместо того, чтобы устанавливать активность на ноль.Это позволяет вызывать метод действия, который обновляет представления, указывающие, что была введена определенная область, но этот метод, похоже, имеет проблемы в этом после вызова метода для обновления представления ex.setText ("...") никакие другие методы, которые следуют, не вызываются.Это было исправлено перемещением вызовов методов, но подобный код, вероятно, приведет к дальнейшим проблемам, и я думаю, что будет лучший способ.
Я должен также упомянуть, что у операции есть launchMode singleTask, чтобы гарантироватьЯ получаю экземпляр, который уже запущен.
<activity android:name=".activities.MyActivity" android:launchMode="singleTask" />
Есть ли лучший способ передать данные обратно в действие через уведомление?