我在后台提供了一个通知服务。
我想要下一件事:
如果我点击通知并且未打开应用,请打开XActivity。
如果应用程序已打开并且已创建XActivity,请转到此处,不要重新创建活动(因为如果发生这种情况,请在返回键上再次看到相同的活动)。
我的通知代码
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("New posts!")
.setContentText("New funny posts had just arrived! Click here to see them!");
mBuilder.setAutoCancel(true);
Intent resultIntent = new Intent(context, XActivity.class);
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
context,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);
int mNotificationId = 001;
//获取NotificationManager服务的实例 NotificationManager mNotifyMgr = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); //构建通知并发布通知。 mNotifyMgr.notify(mNotificationId,mBuilder.build());
我从XActivity启动服务。 (只是一个活动名称示例)
谢谢。
答案 0 :(得分:2)
我有同样的问题,我做的是,我将此行android:launchMode="singleTop"
添加到我在清单中的活动中,并且它有效。
答案 1 :(得分:0)
您的案例中重复活动的问题是因为Android中的Activity的标准结构设计。要仅创建单个活动实例(无重复),您需要在清单文件中为活动提供launchMode属性。您可以使用 singleTop 属性来执行此操作。您可以在提供的链接中阅读更多内容。
另外,对于新数据访问,您可以使用onNewIntent()获取此活动的新意图,并使用setIntent()设置意图并继续使用新数据。
希望这有帮助。
感谢。