如果你正在使用“Google Cloud Message”和“PendingIntent”类来接收推送通知,下面的代码只会在操作栏中显示通知。
点击通知时不会创建任何活动,最后一个活动将被恢复并保留当前状态,没有任何问题。
```
Intent notificationIntent = new Intent(this, ActBase.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
```
```
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Localtaxi")
.setVibrate(vibrate)
.setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
.setAutoCancel(true)
.setOnlyAlertOnce(true)
.setContentText(msg);
```
mBuilder.setContentIntent(contentIntent);
NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
你好!
FLAG_ACTIVITY_SINGLE_TOP
是无法帮助的。当ActivityC在堆栈顶部并调用startActivity()
启动ActivityA时,即使您设置了FLAG_ACTIVITY_SINGLE_TOP
,它仍将创建ActivityA的新实例。FLAG_ACTIVITY_SINGLE_TOP
只有在尝试启动已经在堆栈顶部的活动时,才会防止创建一个新实例。在这种情况下,ActivityA不在堆栈顶部,因此Android会创建一个新实例。 - David Wasser(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_CLEAR_TOP)
来清除特定活动页面之后的所有历史记录。 - shkschneideronNewIntent
中传递新的 Intent 吗? - Bhargav