Notification的功能與用法

Notifiaction是顯示在手機狀態欄的通知——手機狀態欄位於手機屏幕的最上方,Notifiaction表明的是一種具備全局效果的通知,程序通常經過NotificationManager服務來發送Notification.html

NotificationManager是一個重要的系統服務,該API位於應用程序框架層,應用程序可經過NotificationManager向系統發送全局通知。java

Android3.0增長Notification.Builder類,經過該類容許開發者更輕鬆地建立Notification對象。android

下面經過一個實例來講明:app

main.xml框架

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="horizontal"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:gravity="center_horizontal"
	>
<Button
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content" 
	android:text="發送Notification"
	android:onClick="send"
	/>
<Button
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content" 
	android:text="刪除Notification"
	android:onClick="del"
	/>	
</LinearLayout>

NotificationTest.java

package org.crazyit.ui;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;

public class NotificationTest extends Activity
{
	static final int NOTIFICATION_ID = 0x123;
	NotificationManager nm;

	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 獲取系統的NotificationManager服務
		nm = (NotificationManager) 
			getSystemService(NOTIFICATION_SERVICE);
	}

	// 爲發送通知的按鈕的點擊事件定義事件處理方法
	public void send(View source)
	{
		// 建立一個啓動其餘Activity的Intent
		Intent intent = new Intent(NotificationTest.this
			, OtherActivity.class);
		PendingIntent pi = PendingIntent.getActivity(
			NotificationTest.this, 0, intent, 0);
		Notification notify = new Notification.Builder(this)
			// 設置打開該通知,該通知自動消失
			.setAutoCancel(true)
			// 設置顯示在狀態欄的通知提示信息
			.setTicker("有新消息")
			// 設置通知的圖標
			.setSmallIcon(R.drawable.notify)
			// 設置通知內容的標題
			.setContentTitle("一條新通知")
			// 設置通知內容
			.setContentText("恭喜你,您加薪了,工資增長20%!")
			// // 設置使用系統默認的聲音、默認LED燈
			// .setDefaults(Notification.DEFAULT_SOUND
			// |Notification.DEFAULT_LIGHTS)
			// 設置通知的自定義聲音
			.setSound(Uri.parse("android.resource://org.crazyit.ui/"
				+ R.raw.msg))
			.setWhen(System.currentTimeMillis())
			// 設改通知將要啓動程序的Intent
			.setContentIntent(pi).build();
		// 發送通知
		nm.notify(NOTIFICATION_ID, notify);
	}

	// 爲刪除通知的按鈕的點擊事件定義事件處理方法
	public void del(View v)
	{
		// 取消通知
		nm.cancel(NOTIFICATION_ID);
	}
}

運行結果:ide

相關文章
相關標籤/搜索