2017-09-21 82 views
0

我的應用程序(遊戲)有兩個活動:顯示徽標的啓動器活動,初始化並且是我的應用程序的主要活動,以及執行3D渲染並由啓動器活動啓動的客戶端活動。因此,當應用程序運行時,後臺堆棧是:launcher |客戶。點擊鏈接時如何啓動(當應用程序未運行時)或切換(當應用程序正在運行時)到Android應用程序

我想用一個鏈接是什麼:

  1. ,如果應用程序尚未啓動,點擊鏈接應該先啓動發射活動,然後發射活動啓動客戶端活動。最後,遊戲運行在客戶端活動中。

  2. 如果應用程序正在運行(在客戶端活動中運行),則單擊該鏈接應該切換到並通知應用程序該鏈接已被點擊(無論是在啓動器還是客戶端都可以,在客戶端更好),而不是啓動另一個發射器活動。

我曾嘗試:

<activity android:name=".Launcher" android:label="TestApp"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <data android:scheme="myapp" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
    </intent-filter> 
</activity> 

<activity android:name=".Client" android:label="TestApp"> 
</activity> 

而且意圖過濾器的工作原理當我點擊鏈接:

  1. 我在發射胡亞蓉的聲明增加了一個意圖過濾器: myapp://,啓動器活動啓動。但問題是啓動器活動是從瀏覽器的任務開始的。如果我已經有一個應用程序正在運行,那麼將會有一個新的應用程序實例在瀏覽器後端堆棧中啓動,而不是切換到已經運行的應用程序。

  2. 然後我嘗試將屬性android:launchMode="singleTask"添加到活動聲明中。然後單擊該鏈接將啓動一個新任務,並啓動該任務中的啓動器活動。如果應用程序已經運行,正在運行的任務將切換到前臺,這就是我所期望的。但問題是,應用程序任務的後退堆棧從「啓動器」變爲「啓動器」,客戶端活動消失。

我希望我的應用只有一個實例。如果應用程序未運行,則鎖定鏈接應該啓動應用程序,否則切換到應用程序而不會影響應用程序的當前運行狀態。

我搜索了很多,但沒有找到解決方案,請幫助我,謝謝。

回答

0

點擊here爲應用程序鏈接助手

+0

感謝您的鏈接。但我想我已經在鏈接助手中手動完成了所有這些步驟,就像在我的帖子中一樣,但它並沒有解決問題。 –

相關問題