Я только что внедрил глубокую привязку к моему приложению. Я добавил фильтр намерений к своей основной деятельности. Когда пользователь запускает мою схему url, я разбираю ее и обрабатываю в действии, чтобы отображать соответствующую информацию в зависимости от параметров. Он работает хорошо, когда мое приложение запускается с нуля.Начать основное действие при открытии фонового приложения из другого приложения по схеме URL
<activity
android:launchMode="singleTask"
android:name="com.my.app.ui.activities.MainActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="myapp-scheme"/>
</intent-filter>
</activity>
Проблема возникает, когда пользователь открывает некоторые другие действия в стеке и переходит в фоновый режим. Теперь, если это приложение возобновлено с фона, вызывая мой url схемы, все действия все еще находятся в стеке, и основное действие не отображается. Как я могу это решить? Я думаю о навигации к основному виду деятельности, но у меня нет информации, если приложение было запущено из другого приложения или обычным способом.
Спасибо! Это то, что я искал. :) – objc3p0
Как это может быть правильный ответ? Если вы посмотрите на manfest, опубликованный в вопросе, OP уже указал 'launchMode =" singleTask "'! –
Кроме того, это не может быть правильно, потому что если в существующей задаче уже есть другая «активность» поверх «MainActivity», «MainActivity.onNewIntent()» НЕ будет вызываться. –