Безголовая активность на Android с моделью просмотра - PullRequest
0 голосов
/ 07 сентября 2018

Я создаю несколько геозон. Чтобы удалить их позже, мне нужно повесить на Intent, с которым они были созданы.

Я решил сохранить это в ViewModel и прикрепить к обезглавленному Activity. Я был взволнован, когда обнаружил следующее: Как справиться с беззвучным намерением ОТПРАВИТЬ безголовым действием . Тем не менее, вы должны позвонить finish() на активность, которая, я думаю, приведет к тому, что Viewmodel также будет отброшен.

1 Ответ

0 голосов
/ 07 сентября 2018

Вам не нужно сохранять Intent для удаления геозон, и то, что вы пытаетесь сделать, не сработает.

API removeGeofences занимает PendingIntent. При сравнении двух PendingIntents, чтобы увидеть, равны ли они, они следуют правилам Intent.filterEqual () :

Определите, совпадают ли два намерения для целей разрешения намерений (фильтрации). То есть, если их действие, данные, тип, класс и категории совпадают. При этом не сравниваются никакие дополнительные данные, включенные в намерения.

До тех пор, пока вы можете создать намерение с той же информацией, что и раньше, вы можете создать новый PendingIntent и при этом сохранить его.

Или вы можете использовать метод removeGeofences () , который принимает идентификаторы запроса String, которые вы можете добавить в свою геозону с помощью setRequestId () . Тогда вам нужно только отслеживать строки, чтобы отменить геозоны.

...