2013-04-16 97 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'是不同的。这是一个问题,文件不够好,不幸的是, –