手機有未接電話和短信時,會在手機頂部狀態欄出現一個提示圖標,按住狀態欄往下拖,就可以展開查看這些快訊信息!android平臺提供了NotificationManager去管理狀態欄信息,提供Notification處理這些快訊。
首先通過getSystemService方法得到NotificationManager對象,在對Notification的內容、圖標、標題等屬性進行設置後,就可以調用notify方法去執行一個Notification快訊。具體請看下面示例:
先看看運行效果,如圖:
查看快訊用activity02顯示
佈局文件非常簡單,就是4個Button,這裏就省略了!
statusActivity.java
package com.status;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class statusActivity extends Activity {
Button bt1,bt2,bt3,bt4;
//申明通知消息管理器
NotificationManager notificationManager;
Intent intent;
PendingIntent pIntent1,pIntent2,pIntent3,pIntent4;
//聲明Notification對象
Notification notification;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化NotificationManager對象
notificationManager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
bt1=(Button) findViewById(R.id.button1);
bt2=(Button) findViewById(R.id.button2);
bt3=(Button) findViewById(R.id.button3);
bt4=(Button) findViewById(R.id.button4);
intent=new Intent(statusActivity.this,activity02.class);
//顯示點擊通知時顯示內容的類
pIntent1=PendingIntent.getActivity(statusActivity.this, 0, intent, 0);
pIntent2=PendingIntent.getActivity(statusActivity.this, 0, intent, 0);
pIntent3=PendingIntent.getActivity(statusActivity.this, 0, intent, 0);
pIntent4=PendingIntent.getActivity(statusActivity.this, 0, intent, 0);
notification=new Notification();
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
notification.icon=R.drawable.aws;
notification.tickerText="第一個消息";
notification.defaults=Notification.DEFAULT_SOUND;////通知時發出默認的聲音
notification.setLatestEventInfo(statusActivity.this, "消息1", "我是第一個按鈕", pIntent1);
notificationManager.notify(0,notification);
}
});
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
notification.icon=R.drawable.dsd;
notification.tickerText="第二個消息";
notification.defaults=Notification.DEFAULT_VIBRATE;//通知時震動
notification.setLatestEventInfo(statusActivity.this, "消息2", "我是第二個按鈕", pIntent2);
notificationManager.notify(1,notification);
}
});
bt3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
notification.icon=R.drawable.fd;
notification.tickerText="第三個消息";
notification.defaults=Notification.DEFAULT_LIGHTS;//通知時屏幕發亮
notification.setLatestEventInfo(statusActivity.this, "消息3", "我是第三個按鈕", pIntent3);
notificationManager.notify(2,notification);
}
});
bt4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
notification.icon=R.drawable.ffdf;
notification.tickerText="第四個消息";
notification.defaults=Notification.DEFAULT_VIBRATE;//通知時震動
notification.setLatestEventInfo(statusActivity.this, "消息4", "我是第四個按鈕", pIntent4);
notificationManager.notify(3,notification);
}
});
}
}
activity02.java
package com.status;
import android.app.Activity;
import android.os.Bundle;
public class activity02 extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
}
}
注意:應爲使用了3個activity,所以要在AndroidManfest.xml文件中申明,否則會出錯!