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

Android 创建弹出窗口而不是来自BroadcastReceiver的通知,android,android-activity,dialog,notifications,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(Int

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

这是我的代码:

@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);

}
这项工作很重要,但是:


如果应用程序在后台,那么应用程序将出现在前台,并弹出窗口(如果应用程序不在后台,这项工作很棒)

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

在清单中,将其添加到
通知活动的
定义中:

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

如果您更改任务关联,Android将不会查找要启动
NotificationActivity
的现有任务,而只会创建一个新任务