Android Notification的使用

[size=medium] Android 4.1 (Jelly Bean) 增強了通知功能,在AndroidManifest.xml中可以爲Activity添加屬性[color=red]android:parentActivityName="MainActivity"[/color],實現點擊通知打開ResultActivity時,再按返回鍵,回到MainActivity,而不是回到之前的Task。只在4.1的機器上有效,在2.x的機器上和以前沒有任何區別。

核心代碼如下:[/size]
    public void showNotification() {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My Notification")
.setContentText("Hello World");

//NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
// String [] events = new String[6];
// inboxStyle.setBigContentTitle("Event tracker details:");
// for (String event : events) {
// inboxStyle.addLine(event);
// }
// mBuilder.setStyle(inboxStyle);

Intent intent = new Intent(this, ResultActivity.class);

//The stack builder object will contain an artificial back stack for the started Activity.
//This ensures that navigating backward from the Activity leads out of your application to the Home screen
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);

//Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(ResultActivity.class);

//Adds the intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(intent);

PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pendingIntent);

mBuilder.setDefaults(Notification.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
//mBuilder.setDefaults(Notification.DEFAULT_ALL);

NotificationManager mgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mgr.notify(0, mBuilder.build());
}


[size=medium]部分AndroidManifiest.xml代碼[/size]
<activity android:name=".ResultActivity"
android:parentActivityName=".MainActivity" >
</activity>


[size=medium]參考:[url]http://developer.android.com/guide/topics/ui/notifiers/notifications.html[/url][/size]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章