標籤:
兩種情況
第一種情況就是:
點擊Notification ——>進入secActivity ——> back鍵 ——> 退出應用
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
第二種情況:
點擊Notification ——>進入secActivity ——> back鍵 ——> 退到mainActivity ——>back鍵 ——>退出應用
需要添加intent數組,這裡是兩個單位,所以先開啟的是secActivity(intent[1]),
需要在Manifest中對指定的Activity設定屬性
<activity android:name=".secActivityl" android:launchMode="singleTask" android:taskAffinity="" android:excludeFromRecents="true"></activity>
PendingIntent提供了個靜態方法getActivities,裡面可以設定一個Intent數組,用來指定一系列的Activity。
Intent[] makeIntentStack(Context context) { Intent[] intents = new Intent[2]; intents[0] = Intent.makeRestartActivityTask(new ComponentName(context, com.example.notificationtest.MainActivity.class)); intents[1] = new Intent(context, com.example.notificationtest.SubActivity.class); return intents;}
其中需要注意的是Intent.makeRestartActivityTask方法,這個方法用來建立activity棧的根activity
接下來,建立並顯示Notification:
void showNotification(Intent intent) { Notification notification = new Notification( R.drawable.status_icon, "訊息列頂部標題", System.currentTimeMillis()); PendingIntent contentIntent = PendingIntent.getActivities( this, 0, makeIntentStack(this), PendingIntent.FLAG_CANCEL_CURRENT); notification.setLatestEventInfo( this, "下拉訊息列標題", "訊息內容", contentIntent); notification.flags |= Notification.DEFAULT_ALL; mNM.notify(1, notification);}
Android 響應notification事件