2017-01-03 91 views
0

我剛剛實現了與我的應用程序的深層鏈接。我爲主要活動添加了意向過濾器。當用戶啓動我的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從後臺恢復此應用程序,則所有活動仍在堆棧中,並且主要活動不顯示。 我該如何解決這個問題? 我想回到主要活動,但我沒有信息,如果應用程序是從其他應用程序或以正常方式啓動。

回答

1

您需要通過添加下面一行在清單(用於ManiActivity),讓您的MainActivity爲singleTask:

機器人:launchMode = 「singleTask」

然後,覆蓋onNewIntent()MainActivity並處理基於深層鏈接數據的導航。希望這回答你的問題。

+1

謝謝!這就是我正在尋找的東西。 :) – objc3p0

+0

這怎麼可能是正確的答案?如果你看問題中發佈的manfest,OP已經指定'launchMode =「singleTask」'! –

+0

另外,這不可能是正確的,因爲如果現有任務在MainActivity上已經有另一個Activity,則不會調用MainActivity.onNewIntent()。 –

相關問題