Проблемы с отправкой нескольких разных намерений Android для открытия приложения

#java #android #android-intent

#java #Android #android-намерение

Вопрос:

Я столкнулся с проблемой отправки разных намерений через URI в одно и то же открытое приложение.

В моем файле манифеста у меня есть следующие записи :

 <intent-filter>
<data
android:scheme="http"
android:host="my-domain.com"
/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
  

Я хочу, чтобы мое приложение запустилось, если оно еще не открыто, и возобновилось, если это так.
По ссылке электронной почты я хочу запустить это приложение по URL :

 http://my-domain.com/activate?code=abcdef
  

В моем приложении я получаю намерение в onRestart, анализирую его и использую. Это работает.
Но когда я вызываю другое письмо с другим кодом, например

 http://my-domain.com/activate?code=ghijkl
  

и приложение все еще открыто, я не могу выбрать данные из второго вызова. Каждый раз, когда я пытаюсь, я получаю данные с первого вызова. Я не могу отказаться от намерения после использования.

Что я могу сделать, чтобы выполнить чтение данных из второго вызова, поддерживая приложение в рабочем состоянии? Это работает, если приложение еще не открыто, но этого недостаточно… Я не нашел никакого ответа относительно этой проблемы и ее решения… Есть ли здесь кто-нибудь с применимым решением?

заранее большое спасибо!

Комментарии:

1. Я думаю, что onResume() вызывается при повторном открытии приложения, потому что оно не было полностью остановлено, оставив то же состояние

2. Нет, приложение не полностью остановилось, когда я отправляю второй URL…. Но это желаемое состояние приложения. Как я могу заставить точку доступа использовать содержимое второго URL, а не первого?

3. Очистка намерения не помогает, поскольку она не удаляет намерение, и приложение получает свои данные из этого «пустого» намерения, а не из другого