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); } }); } }