我正在尝试在我的应用中使用通知,但使用以下代码时出现问题:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification)
.setContentTitle("title")
.setContentText("message");
builder.setOngoing(true);
Intent resultIntent = new Intent(this,StartActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(StartActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
builder.setContentIntent(resultPendingIntent);
notificationManager.notify(1, builder.build());
当我返回主屏幕并单击状态栏中的通知时,StartActivity将被销毁并再次创建。但是,我只想让Activity再次显示,就像点击启动器图标一样。我怎么能改变它?
问候
答案 0 :(得分:0)
尝试添加
resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
在创建PendingIntent
来源:
How to make notification intent resume rather than making a new intent?
答案 1 :(得分:0)
以下为我工作:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification)
.setContentTitle("title")
.setContentText("message");
builder.setOngoing(true);
Intent resultIntent = new Intent(this,NotificationActivity.class);///!!!!
resultIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(resultPendingIntent);
notificationManager.notify(1, builder.build());
NotificationActivity 是特殊类,它会立即在onCreate()中完成,并将应用程序的任务带到前台。资料来源:Notification to restore a task rather than a specific activity?