notification和notificationmanager的使用
??????? 1、获取系统级的服务notificationmanager
??????? //String android.content.Context.NOTIFICATION_SERVICE
????? ? String service = NOTIFICATION_SERVICE;
??????? NotificationManager nm = (NotificationManager)getSystemService(service);
????????
??????? 2、实例化Notification
??????? Notification n = new Notification();
??????? // 设置显示图标,该图标会在状态栏显示
??????? int icon = n.icon = R.drawable.icon;
??????? // 设置显示提示信息,该信息也会在状态栏显示
??????? String tickerText = "Test Notification";
??????? // 显示时间
??????? long when = System.currentTimeMillis();
??????? n.icon = icon;
??????? n.tickerText = tickerText;
??????? n.when = when;
??????? // 也可以通过这种构造方法来设置
??????? Notification n1 = new Notification(icon, tickerText, when);?
????????
??????? 3、实例化Intent
??????? Intent intent = new Intent(this, MainActivity_Temp.class);
??????? // 获得PendingIntent
??????? PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
??????? // 设置事件信息
??????? n.setLatestEventInfo(this, "My Title", "My Content", pi);?
?
????????//具体事件 暂时不知道干什么的
??????? n.defaults |= Notification.DEFAULT_SOUND;
??????? n.sound = Uri.parse("file:///sdcard/sound.mp3");
??????? n.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");
??????? n.defaults |= Notification.DEFAULT_VIBRATE;
??????? long[] vibrate = {0,50,100,150};
??????? n.vibrate = vibrate;?
??????? n.defaults |= Notification.DEFAULT_LIGHTS;
??????? n.ledARGB = 0xff00ff00;
??????? n.ledOnMS = 300;
??????? n.ledOffMS = 1000;
??????? n.flags |= Notification.FLAG_SHOW_LIGHTS;?
????????
???????? 4、发通知
??????? // 标示该通知的ID
??????? int ID = 1;
??????? // 发出通知
??????? nm.notify(ID, n);
?
利用notification和notificationmanager来实现可视化的消息显示。
?
package com.amaker.ch08.app;
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.provider.MediaStore.Audio;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class TestNotificationmanager extends Activity {
?// 声明按钮
?private Button sendBtn,cancelBtn;
?private Notification n ;
?private NotificationManager nm;?
?// Notification标示ID
?private static final int ID = 1;
?
[email protected]
?public void onCreate(Bundle savedInstanceState) {
?//
??super.onCreate(savedInstanceState);
??setContentView(R.layout.main);
??
?? // 实例化按钮???????
??sendBtn = (Button)findViewById(R.id.sendButton01);???????
??cancelBtn = (Button)findViewById(R.id.cancelButton02);
??
??// 获得NotificationManager实例???????
??String service = NOTIFICATION_SERVICE;???????
??nm = (NotificationManager)getSystemService(service);?
??
??// 实例化Notification???????
??n = new Notification();??
??
??// 设置显示图标,该图标会在状态栏显示???????
??int icon = n.icon = R.drawable.happy;?
??
??// 设置显示提示信息,该信息也会在状态栏显示??????
??String tickerText = "Test Notification";????????
??// 显示时间???????
??long when = System.currentTimeMillis();???????
??n.icon = icon;???????
??n.tickerText = tickerText;???????
??n.when = when;???
??
??// 为按钮添加监听器???????
??sendBtn.setOnClickListener(sendListener);???????
??cancelBtn.setOnClickListener(cancelListener);
??
?}
?
?private OnClickListener sendListener = new OnClickListener(){
?? @Override???????
?? public void onClick(View v){
??? // 实例化Intent???????????
??? Intent intent = new Intent(TestNotificationmanager.this, TestNotificationmanager.class);????????????
??? // 获得PendingIntent???????????
??? PendingIntent pi = PendingIntent.getActivity(TestNotificationmanager.this, 0, intent, 0);????????????
??? // 设置事件信息???????????
??? n.setLatestEventInfo(TestNotificationmanager.this, "My Title", "My Content", pi);
???
//??? n.defaults |= Notification.DEFAULT_SOUND;
//?????? n.sound = Uri.parse("file:///sdcard/love.mp3");
//????????? n.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");
//
//????????? n.defaults |= Notification.DEFAULT_VIBRATE;
//????????? long[] vibrate = {0,50,100,150};
//????????? n.vibrate = vibrate;
//????????? n.defaults |= Notification.DEFAULT_LIGHTS;
//????????? n.ledARGB = 0xff00ff00;
//????????? n.ledOnMS = 300;
//????????? n.ledOffMS = 1000;
//????????? n.flags |= Notification.FLAG_SHOW_LIGHTS;
??? // 发出通知???????????
??? nm.notify(ID, n);
?? }
?};
?
?private OnClickListener cancelListener? = new OnClickListener(){
?? @Override???????
?? public void onClick(View v){
??? /// 取消通知???????????
??? nm.cancel(ID);
?? }
?};
}
?
在main.xml布两个按钮,在res下建一个drawable文件夹放上happy.jpg见附件
?
效果:出现图标和字符通知
?