我需要在屏幕中央显示弹出消息,在几个论坛中阅读后我发现可以通过启动一个新的透明活动来实现。
这是我的代码:
@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);
}
这项工作但是:
如果应用程序在后台,而应用程序将突然出现在前台(如果应用程序不在后台,则此工作非常棒)。
答案 0 :(得分:0)
如果您不希望在显示此弹出窗口时将应用程序置于前台,则需要确保NotificationActivity
具有与应用程序其余部分不同的任务关联。
在清单中,将其添加到<activity>
的{{1}}定义中:
NotificationActivity
如果没有这个,所有活动的默认任务关联都是相同的,因此当Android查找要启动android:taskAffinity=""
的任务并且您的应用已在运行时,Android会启动NotificationActivity
任务并将其带到前台。
如果您更改了任务关联,Android将不会查找现有任务以启动NotificationActivity
,而只会创建新任务。