У меня есть приложение для Android. Я добавил фильтр намерений в одно из своих занятий, чтобы при щелчке по URL-адресу в браузере приложение могло быть запущено. Выглядит так:
<data android:host="www.mysite.com" android:scheme="http"></data>
это хорошо работает. Проблема заключается в том, что каждый раз, когда моя деятельность запускается из браузера, внутри задачи приложения браузера создается новый экземпляр действия вместо того, чтобы перерабатывать любой существующий экземпляр, который уже может быть в системе.
Это проблема для меня, потому что в этом упражнении используется синглтон. Если я позволю существовать более чем одному экземпляру этого действия, я могу попасть в некоторые странные ситуации, когда два экземпляра конфликтуют, когда они пытаются поделиться синглтоном. Я проверил и вижу, что, хотя экземпляры операций могут быть в разных задачах, они совместно используют один и тот же экземпляр.
Идеальным решением для меня было бы, если бы я мог каким-то образом вывести уже существующий экземпляр моего приложения на передний план, а также запустить или возобновить целевую активность в пределах того, какой запущенный ранее экземпляр моего приложения работал. *
Итак, я попробовал это:
- Зарегистрируйтесь выше фильтра, чтобы указать на фиктивную активность, которая является просто ловцом.
- Фиктивная операция создает намерение широковещания и пытается передать в систему сообщение «создай меня».
- Реальная целевая активность настроена на прослушивание этого широковещательного сообщения. Надеемся, что если в системе уже есть экземпляр активности, он выйдет на первый план. Если экземпляра еще нет, все в порядке, разрешите создание в задаче браузера.
Не уверен, имеет ли это смысл. Моя основная цель - ограничить активность одним экземпляром в системе. Приложение представляет собой приложение для социальных сетей, состояние входа в которое необходимо сохранить. Упомянутый выше синглтон сохраняет это состояние входа в систему, поэтому я хочу, чтобы в системе было только одно окружение, вместо того чтобы разрешать несколько экземпляров входа в систему, что было бы головной болью для пользователя.
Спасибо