创建弹出而不是来自BroadcastReceiver的通知

时间:2015-02-01 14:46:47

标签: android android-activity dialog notifications

我需要在屏幕中央显示弹出消息,在几个论坛中阅读后我发现可以通过启动一个新的透明活动来实现。

这是我的代码:

@Override
public void onReceive(Context context, Intent intent) {

    Intent i = new Intent();
    i.setClassName(context,
            "com.ui.activity.NotificationActivity");
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);

}

这项工作但是:

如果应用程序在后台,而应用程序将突然出现在前台(如果应用程序不在后台,则此工作非常棒)。

1 个答案:

答案 0 :(得分:0)

如果您不希望在显示此弹出窗口时将应用程序置于前台,则需要确保NotificationActivity具有与应用程序其余部分不同的任务关联。

在清单中,将其添加到<activity>的{​​{1}}定义中:

NotificationActivity

如果没有这个,所有活动的默认任务关联都是相同的,因此当Android查找要启动android:taskAffinity="" 的任务并且您的应用已在运行时,Android会启动NotificationActivity任务并将其带到前台。

如果您更改了任务关联,Android将不会查找现有任务以启动NotificationActivity,而只会创建新任务。