如果您使用「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());
的Ciao!
我覺得應該是[FLAG_ACTIVITY_SINGLE_TOP(http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_SINGLE_TOP)。 – 2012-05-17 11:18:44
@ user942821'FLAG_ACTIVITY_SINGLE_TOP'在這裏沒有幫助。當ActivityC位於堆棧的頂部並且它調用'startActivity()'來啓動ActivityA時,即使您設置了「FLAG_ACTIVITY_SINGLE_TOP」,它仍然會創建一個ActivityA的**新實例**。如果您嘗試啓動已經位於堆棧頂部的活動**,則「FLAG_ACTIVITY_SINGLE_TOP」只會阻止創建新實例**。在這種情況下,ActivityA不在棧頂,所以Android創建一個新的實例。 – 2013-03-21 10:34:34
太棒了!使用'(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_CLEAR_TOP)'在給定的'活動'後清除任何歷史記錄。 – shkschneider 2015-06-09 15:48:14