Mögliche Duplicate Deep linking and multiple app instances. Ich habe Deep Linking in meiner App implementiert. Ich habe Splash-Aktivität, die Trägerrakete und MainActivity ist, dass die Absicht behandelt wie im Manifest definiert:Android Deep Linking und singleInstance/singleTask
<application
android:name=".MyApplication"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@drawable/app_logo"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/AppTheme">
<activity
android:name=".ActivitySplash"
android:configChanges="orientation|screenSize"
android:label="@string/app_name">
<intent-filter>
<!-- Launcher activity -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ActivityMain"
android:alwaysRetainTaskState="true"
android:configChanges="orientation|screenSize"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.mywebsite.com"
android:pathPrefix="/something"
android:scheme="http" />
</intent-filter>
</activity>
<activity
android:name=".ActivitySignIn"
android:configChanges="screenSize|orientation" />
<activity android:name=".ActivitySignUp" />
</application>
I Startmodus singleTask gesetzt haben zu handhaben onNewIntent(). Nun, was ich erreichen möchte, ist, dass, wenn der Benutzer die Aktivität von DeepLinking öffnet und es bereits eine Aufgabe in MainActivity gibt, ich einen Benutzer auffordere, entweder die aktuelle Aufgabe abzubrechen und eine neue Aufgabe zu starten (was von Deep Linking ist). Das Problem ist, wenn ich eine andere Aktivität von MainActivity öffnen und Benutzer von DeepLinking Intent kommt. Dann würde es die zweite Aktivität beenden und MainActivity direkt öffnen. Was ich erreichen möchte, ist, dass, wenn App/Aktivität nicht läuft, Intent von DeepLink geöffnet ist wie es ist. Und wenn Aktivität/App bereits ausgeführt wird, fordere ich den Benutzer auf, entweder die aktuelle Aufgabe zu schließen und DeepLink-Aufgabe/Absicht auszuführen.
Verwenden Sie dieses Android: launchMode = "singleInstance" anstelle von Android: launchMode = "singleTask". Ich hoffe, es wird funktionieren. –
Ich habe singleInstance vorher verwendet und in diesem Fall, wenn ich die App wieder aktiviere und durch Antippen des App-Symbols wieder öffne, wird zuerst Splash angezeigt, anstatt den letzten Status anzuzeigen. Und auch ich bekomme eine seltsame Animation in allen Aktivitäten laden mit singleInstance –
poste dein komplettes Manifest –