状态栏通知Notification用法

fanleiym 2012-03-06

Notification的简单理解:http://blog.csdn.net/manymore13/article/details/6801471

Android状态栏通知Notification用法:http://www.pocketdigi.com/20100905/89.html

AndroidNotification传递参数:http://renzhen.iteye.com/blog/1176746

<?xmlversion="1.0"encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.pandy.notifi"

android:versionCode="1"

android:versionname="1.0">

<uses-sdkandroid:minSdkVersion="10"/>

<uses-permissionandroid:name="android.permission.VIBRATE"/>

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name">

<activity

android:name=".NotificationDemoActivity"

android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

</manifest>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示Notification" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="删除Notification" />

</LinearLayout>
package com.pandy.notifi;

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.widget.Button;

public class NotificationDemoActivity extends Activity {
	/** Called when the activity is first created. */
	private Button button1, button2;
	NotificationManager nm;
	int notification_id=19172439;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		button1 = (Button) findViewById(R.id.button1);
		button2 = (Button) findViewById(R.id.button2);
		nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

		button1.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Notification nf = new Notification(R.drawable.ic_launcher,"我就是发个通知到状态栏来显示而已.",System.currentTimeMillis());
				//后面的参数分别是显示在顶部通知栏的小图标,小图标旁的文字(短暂显示,自动消失)系统当前时间(不明白这个有什么用)
				nf.defaults=Notification.DEFAULT_ALL;
				//这是设置通知是否同时播放声音或振动,声音为Notification.DEFAULT_SOUND
		    	//振动为Notification.DEFAULT_VIBRATE;
		    	//Light为Notification.DEFAULT_LIGHTS,在我的Milestone上好像没什么反应
		    	//全部为Notification.DEFAULT_ALL
		    	//如果是振动或者全部,必须在AndroidManifest.xml加入振动权限
				PendingIntent pt=PendingIntent.getActivity(NotificationDemoActivity.this, 0, new Intent(NotificationDemoActivity.this,NotificationDemoActivity.class), 0);
				//点击通知后的动作,这里是转回main 这个Acticity
				//往下拖动后,看见列表里面的内容
				nf.setLatestEventInfo(NotificationDemoActivity.this,"往下拖动后的列表标题","点击查看内容",pt);
		    	nm.notify(notification_id, nf);
				

			}
		});
		button2.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//取消状态栏的通知
				nm.cancel(notification_id);

			}
		});

	}
}

相关推荐