Android-----狀態爛提示(Notification、NotificationManager)

手機有未接電話和短信時,會在手機頂部狀態欄出現一個提示圖標,按住狀態欄往下拖,就可以展開查看這些快訊信息!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文件中申明,否則會出錯!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章