[java]
public class NotificationtestActivity extends Activity {
private static final int ID = 1213;
private static final String KEY_COUNT="keyCount";
private int count;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent=this.getIntent();
count=intent.getIntExtra(KEY_COUNT,0);
this.setTitle("這是第"+Integer.toString(count)+"個");
Button btn=(Button) this.findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AddNotification();
NotificationtestActivity.this.finish();
}
});
}
/**
* 添加頂部通知
* @author liuzhao
*/
public void AddNotification(){
count++;
//添加通知到頂部任務欄
//獲得NotificationManager實例
String service = NOTIFICATION_SERVICE;
NotificationManager nm = (NotificationManager)getSystemService(service);
//實例化Notification
Notification n = new Notification();
//設置顯示圖標
int icon = R.drawable.icon;
//設置提示信息
String tickerText ="我的程序";
//顯示時間
long when = System.currentTimeMillis();
n.icon = icon;
n.tickerText = tickerText;
n.when = when;
//顯示在“正在進行中”
// n.flags = Notification.FLAG_ONGOING_EVENT;
n.flags|=Notification.FLAG_AUTO_CANCEL; //自動終止
//實例化Intent
Intent it = new Intent(this,NotificationtestActivity.class);
it.putExtra(KEY_COUNT, count);
/*********************
*獲得PendingIntent
*FLAG_CANCEL_CURRENT:
* 如果當前系統中已經存在一個相同的PendingIntent對象,
* 那麼就將先將已有的PendingIntent取消,然後重新生成一個PendingIntent對象。
*FLAG_NO_CREATE:
* 如果當前系統中不存在相同的PendingIntent對象,
* 系統將不會創建該PendingIntent對象而是直接返回null。
*FLAG_ONE_SHOT:
* 該PendingIntent只作用一次,
* 如果該PendingIntent對象已經觸發過一次,
* 那麼下次再獲取該PendingIntent並且再觸發時,
* 系統將會返回一個SendIntentException,在使用這個標志的時候一定要注意哦。
*FLAG_UPDATE_CURRENT:
* 如果系統中已存在該PendingIntent對象,
* 那麼系統將保留該PendingIntent對象,
* 但是會使用新的Intent來更新之前PendingIntent中的Intent對象數據,
* 例如更新Intent中的Extras。這個非常有用,
* 例如之前提到的,我們需要在每次更新之後更新Intent中的Extras數據,
* 達到在不同時機傳遞給MainActivity不同的參數,實現不同的效果。
*********************/
PendingIntent pi = PendingIntent.getActivity(this, 0, it, PendingIntent.FLAG_UPDATE_CURRENT);
//設置事件信息,顯示在拉開的裡面
n.setLatestEventInfo(NotificationtestActivity.this,"我的軟件"+Integer.toString(count), "我的軟件正在運行……", pi);
www.2cto.com
//發出通知
nm.notify(ID,n);
}
}