2013-04-16 94 views
1

我開始在IncomingCall上檢測到Theme.Dialog的活動;然而,當我開始我的對話活動時,它隱藏了來電屏幕,這不是我想要的行爲。我想單獨開始對話活動,以便它出現在來電屏幕的頂部,而不是來電屏幕頂部的全部應用程序。我在Manifest和NEW_TASK標誌中使用了SingleTask,並使用了各種上下文。 作爲提示,我想要做一些類似TrueCaller的Android應用程序。從服務開始的Android開始活動,但不啓動應用程序的其他活動

回答

4

你需要確保與對話的主題活動有比你的應用程序的其餘部分不同的任務親和力。否則,如果您的應用程序正在運行,啓動該活動(即使使用FLAG_ACTIVITY_NEW_TASK)只會將現有任務轉移並將您的活動放在其上。

您應該添加以下清單爲這個特定的活動:

android:taskAffinity="" 
android:noHistory="true" 
android:excludeFromRecents="true" 

注:設置noHistoryexcludeFromRecents確保這一任務不會在「最近的任務列表」中顯示。

+0

工作,謝謝。 –

0

使用android:launchMode="singleInstance"

+1

這沒有幫助。問題是'taskAffinity'。即使他的活動有'launchMode ='singleTask'「,Android也會將現有任務帶到前面,而不是創建新任務。更改啓動模式不會解決問題。看到我的答案。 –

+0

thx for clearing .. +1 ..我以爲singleInstance會創建一個獨立的活動 – stinepike

+0

它應該。但是,唉,沒有:-(除非'taskAffinity'是不同的。這是一個問題,文件不夠好,不幸的是, –