簡體   English   中英

當意圖過濾器啟動活動時如何關閉以前的活動?

[英]How to close previous activities when activity launch by intent-filter happens?

我有一個活動,它通過這個意圖過濾器從瀏覽器啟動:

   <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:scheme="myapp" />
            <data android:host="someaction"/>
            <data android:path="/" />
        </intent-filter>

但是如果我的應用程序的其他活動沒有被破壞,它們將出現在啟動的活動后面。 我需要以某種方式使用 CLEAR_TOP 標志但使用意圖過濾器。 Activity 的launchMode 設置為singleTop ,我不能使用singleInstance 或singleTask。 那么如何只啟動我想要的活動而不啟動其他活動呢?

解決方案1

我會用一些BroadCast事件來嘗試這個。 從您啟動的Activity發送一個,並將BroadcastReceivers添加到您想要關閉的那些。

檢查這個答案,我認為它應該對你有所幫助。

解決方案2

我也想嘗試一下:將您的活動的意圖標志設置為FLAG_ACTIVITY_CLEAR_TOP 您也可以考慮使用以下意圖標志: FLAG_ACTIVITY_CLEAR_TASK FLAG_ACTIVITY_NEW_TASK

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM