Android中的通知——Notification

来源:互联网 发布:完整消防队源码 编辑:程序博客网 时间:2024/06/05 10:01

Notification的作用

在我们日常使用手机的时候,经常会收到一些推送消息的提醒,如微信有人给你发消息了,就会在通知栏显示一个小的微信图标。

Android中提供了用于处理这种事件的类(Notification和NotificationManager),Notification代表的是全局效果的通知,NotificationManager是用于发送Notification通知的系统服务。

发送通知的步骤

  1. 用getSystemService()方法获取系统的NotificationManager通知。
  2. 创建一个Notification对象,并设置一些属性。
  3. 为Notification对象设置事件。
  4. 通过NotificationManager 类的 notify()方法发送通知。
 /**     *     * 触发Notification (此方法写在MainActivity里面的一个按钮的点击事件下面,)     * count 为一个共公全局静态变量 public static int count = 0;     * */    private void showNotify() {        //步骤1:获取NotificationManager类        NotificationManager notifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,                new Intent(this, TestActivity.class), 0);        //步骤2:通过Notification.Builder来创建通知,注意API Level ,API16之后才支持        Notification notify = new Notification.Builder(this)                .setSmallIcon(R.mipmap.ic_launcher)//显示的图片                .setTicker("您有新短消息,请注意查收!")//显示在通知栏的消息                .setContentTitle("通知的标题")//下拉通知栏之后的标题                .setContentText("通知的内容")//下拉通知栏之后的内容               // count 为一个共公全局静态变量 public static int count = 0;               //在调用此方法之前 有 count++;  来改变count的值,模拟多次点击通知显示的内容条数增加                .setContentIntent(pendingIntent).setNumber(count).build(); // 需要注意build()是在API        //步骤3:设置flag位        //FLAG_AUTO_CANCEL  该通知能被状态栏的清除按钮给清除掉        //FLAG_NO_CLEAR     该通知不能被状态栏的清除按钮给清除掉        //FLAG_ONGOING_EVENT 通知放置在正在运行        //FLAG_INSISTENT 是否一直进行,比如音乐一直播放,知道用户响应        notify3.flags |= Notification.FLAG_AUTO_CANCEL; // FLAG_AUTO_CANCEL表明当通知被用户点击时,通知将被清除。        notifyManager.notify(1, notify);// 步骤4:通过通知管理器来发起通知。    }
点击通知跳转到TestActivity 类中。
/***我们在这个类里面清除通知栏我们发的通知,不管是通过点击通知进入此页面,还是通过程序里面的按钮跳转,*因为我们常见的通知就是为了让你进入特定页面查看消息,我们已经打开这个页面,通知就没必要存在了。*/public class TestActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test);        //获取NotificationManager 类        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);        //此方法是清除当前Context下的所有Notification        manager.cancelAll();        //设置消息条数count归零        MainActivity.count =0;    }}
0 0
原创粉丝点击