现在的位置: 首页 > 移动开发 > 正文

Android入门进阶教程(21)-通知管理器NotificationManager

2019年09月08日 移动开发 ⁄ 共 2719字 ⁄ 字号 评论关闭

通知:Notification 
通知管理器:NotificationManager 

1、使用Notification 和 NotificationManager的目的: 
* Broadcast Receiver没有提供可视化界面来显示广播信息; 
* Notification 和 NotificationManager 能实现可视化信息的显示; 
* 可以将显示的广播信息的内容以及图标和震动等信息(在状态栏上); 

2、使用小贴士: 
* getSystemService();     获取系统级的服务; 
* 实例化Notification; 对属性设置:icon tickerText when -- 发出一些通知的属性; 
* n.setLatestEventInfo();设置事件信息 
* 通过NotificationManager发出通知;nm.notify(); 

3、案例:用户点击按钮发出一个通知,同样有一个取消通知的按钮; 

Java代码  收藏代码
  1. package com.example.nofifacation;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.Notification;  
  5. import android.app.NotificationManager;  
  6. import android.app.PendingIntent;  
  7. import android.content.Intent;  
  8. import android.os.Bundle;  
  9. import android.view.View;  
  10. import android.view.View.OnClickListener;  
  11. import android.widget.Button;  
  12.   
  13. public class MainActivity extends Activity {  
  14.   
  15.     private final int ID = 1;  
  16.     /* 声明Notification 和 NotificationManager */  
  17.     private Notification n ;  
  18.     private NotificationManager nm;  
  19.   
  20.     private Button send;  
  21.     private Button cancel;  
  22.     /* 组件初始化 */  
  23.     public void init(){  
  24.         send = (Button) findViewById(R.id.sendNotification);  
  25.         cancel = (Button) findViewById(R.id.cancelNotification);  
  26.     }  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         setContentView(R.layout.main);  
  30.           
  31.         init();  
  32.           
  33.         /* 获取Notification对象 *//* 获得NotificationManager对象 */  
  34.         n = new Notification();  
  35.         nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);  
  36.         /* 设置显示图标,该图标会在状态栏显示 */  
  37.         n.icon = R.drawable.ic_launcher;  
  38.           
  39.         /* 设置显示提示信息,也会在状态栏显示 */  
  40.         n.tickerText = "通知,测试通知的发出";  
  41.           
  42.         /* 显示时间 */  
  43.         n.when = System.currentTimeMillis();  
  44.           
  45.         /* 按钮点击事件监听器 */  
  46.         send.setOnClickListener(new OnClickListener() {  
  47.   
  48.             public void onClick(View v) {  
  49.                   
  50.                 /* 实例化Intent对象 *//* 在同一个Activity之间跳转 */  
  51.                 Intent intent = new Intent(MainActivity.this,MainActivity.class);  
  52.                   
  53.                 /* 获取PendingIntent 对象 */  
  54.                 PendingIntent pi = PendingIntent.getActivity(MainActivity.this0, intent, 0);  
  55.                   
  56.                 /* 设置事件信息 *//*  */  
  57.                 n.setLatestEventInfo(MainActivity.this"Title""content",pi);  
  58.                   
  59.                 /* 发出通知 *//* 参1:通知对象ID , 通知Notification的对象 */  
  60.                 nm.notify(ID,n);  
  61.             }  
  62.         });  
  63.           
  64.         /* 点击事件监听器 *//* 动作:取消通知 */  
  65.         cancel.setOnClickListener(new OnClickListener() {  
  66.               
  67.             public void onClick(View v) {  
  68.                 nm.cancel(ID);    
  69.             }  
  70.         });  
  71.     }  
  72.   
  73. }  

抱歉!评论已关闭.