1

我的應用程序將一個PendingIntent(調用我自己的活動)傳遞給第三方應用程序,並在該第三方應用程序中啓動一個活動。PendingIntent完成當前的第三方活動以及開始它的相應活動

在某些時候,第三方應用程序啓動PendingIntent(點擊某個按鈕時),但它沒有完成自己的活動。

我想知道是否有一種方法(也許使用意圖標誌或TaskStackBuilder)構建PendingIntent以這樣一種方式,第三方活動將自動完成?

+0

您的目標是什麼?因此,從標識爲「我自己的活動」的活動中按下BACK返回到首先開始的所有活動,繞過第三方應用程序的干預活動? – CommonsWare

+0

正確。實際上,在這個例子中,我的應用只有一個相關的活動。該活動啓動第三方活動,然後由第三方活動使用掛起的意圖「啓動」。我的目標是避免第三方活動的漫長過程。我現在實際上有一個解決方案(我將在下面發佈),但感覺有點像黑客。 –

+0

將我的活動看作一個列表,點擊每個項目啓動第三方活動。第三方活動可以通過待定意圖調出列表(我的活動)。 –

回答

1

使用launchMode singleTask作爲您應用中的活動。這意味着第三方應用程序活動一旦觸發Pending Intent就會完成。

+0

將'Intent.FLAG_ACTIVITY_CLEAR_TASK'或可能'Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED'放入PendingIntent中包含的'Intent'中應該具有相同的效果,並且具有更精細的粒度的獎勵,以防在有些情況下您不能支持此活動的'singleTask'行爲。 – CommonsWare

+0

謝謝,通常這會工作,但在這種特殊情況下(對不起,可能有一些關鍵信息從問題中遺漏)它不。我懷疑,第三方應用程序正在開始自己的任務(我認爲它使用'taskAffinity';不能'launchMode',因爲如果它是活動不會堆疊)。通過在清單中指定'launchMode'('singleTask'),我可以強制關閉第三方活動(或者轉移到其他「隱藏」任務)。我無法找到一種方法來處理所有這些與'意圖'標誌,雖然我同意會更好。 –

+0

是的,那麼你可能會堅持使用這個解決方案。 – CommonsWare

相關問題