2016-04-18 6 views
2

Ich habe diesen Intent-Filter in meiner Manifest-Datei hinzugefügt, und die Tiefenverknüpfung funktioniert.Deep-Linking und mehrere App-Instanzen in Android

<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="website.in" 
    android:pathPrefix="/sometag/" 
    android:scheme="https" /> 
</intent-filter> 

Das Problem ist, dass durch Deep-Linking meine App auf der aktuellen App startet. Wenn ich in Gmail bin und auf einen Link klicke, wird meine App zusätzlich zu Gmail gestartet.

Wenn meine App bereits im Hintergrund ausgeführt wird und ich auf einen Link in Google Mail klicke, der auf meine App umleitet, werden zwei Instanzen meiner App gleichzeitig ausgeführt. Eine im Hintergrund und eine weitere oben auf Google Mail . Ich möchte nur eine Instanz meiner App gleichzeitig ausführen. Sie ist also auch nicht auf der aktuellen App (Gmail) installiert.

Refered Link aber nicht funktionierende Lösungen: Deep linking and multiple app instances

Antwort

0

Sie sollten das launchMode Attribut Ihrer Aktivität verwenden (je nachdem, was Sie passieren erwarten). Documentation is here

1

endlich Lösung für mein Problem

hinzugefügt
android:launchMode="singleTask" 

in Android Manifest und außer Kraft setzen onNewIntent .und zu prüfen, ob Instanz bereits vorhandenen erstellt wird.