Android从广播接收器发起活动

时间:2011-01-07 19:53:43

标签: android broadcastreceiver activity-stack taskaffinity

我知道这可能不是最好的做法,但这就是我想做的事。

当我的广播接收器被调用时 - 启动一个不是全屏并且具有透明背景的新活动 - 在您当前的活动/桌面壁纸之上打开。

我到目前为止的代码如下:

我使用以下命令创建+调用新活动:


  Intent testActivityIntent = new Intent(context, com.andy.tabletsms.work.SMSPopup.class);
                testActivityIntent.putExtra("com.andy.tabletsms.message", main.msgs.get(i));
                testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                context.startActivity(testActivityIntent);

然后活动的主题是:

机器人:主题= “@机器人:风格/ Theme.Translucent.NoTitleBar”

活动的代码只是一个简单布局的沼泽标准活动。然而,当该广播接收器启动活动时 - 它出现在应用程序启动时启动的上一个活动的顶部.....根据此图像显示: alt text

3 个答案:

答案 0 :(得分:5)

这与我在上一个问题中回答的问题有关:Activity started from notification opened on top of the activity stack

基本上所有关于:android:taskAffinityandroid:launchMode

答案 1 :(得分:0)

你现在已经问过同样的问题3次了,我们仍然没有足够的信息。你不断提到“原始活动”,但我们不知道那是什么,你是如何开始的,或者它是什么时候“回归”。

你可能是因为你可能没有完成你的“主要”活动,或者你有奇怪的旗帜,或者它正在倾听同样的意图。

您也没有向我们展示有关您的广播接收器的任何信息。

答案 2 :(得分:0)

不要使用  机器人:主题= “@安卓风格/ Theme.Translucent.NoTitleBar” 保留android:theme作为默认值。这对我有用