zoukankan      html  css  js  c++  java
  • 第13讲- Android之消息提示Notification

    13讲 Android之消息提示Notification

    1Notification

    Notification可以理解为通知的意思一般用来显示广播信息,通知可以显示到系统的上方的状态栏(status bar)中,通知内部的显示分为两个部分:

    1.notification area(通知状态栏);     2. notification drawer (通知列表页面)

        

    ( 图一 )                                                                           ( 图二 )

    当应用程序向android系统发出一个notification时,通知首先以小图标的方式出现在notification area。用户可以在下拉栏,打开notification drawer,显示notification的详细情况。

    提示:notification area和notification drawer都是由android系统来管理和维护的,因此用户可以随时进行查看。

    优点:某些信息不需要用户马上处理,可以利用通知,即延迟消息,比如软件的更新,短信,新闻之类的。

    1.内容标题  2.大图标  3.内容  4.内容附加信息  5.小图标  6.时间

    ToastNotification的区别:

    A、Toast是一种及时的消息提醒,而Notification是一种延迟的消息提醒。

    B、Toast其实相当于一个组件(Widget),有些类似于没有按钮的对话框。而Notification是显示在屏幕上方状态栏中的信息。

    C、 Notification需要用NotificationManager来管理,而Toast只需要简单地创建Toast对象即可。

    2、如何创建notification

    1>实例化一个NotificationManager对象;如:manager

    调用Context.getSystemService(NOTIFICATION_SERVICE)方法即可返回NotificationManager实例。

    2>实例化一个NotificationCompat.Builder对象;如builder

    3>调用builder的相关方法对notification进行上面提到的各种设置

    4>调用builder.build()方法此方法返回一个notification对象。

    5>调用manager的notify方法发送通知

    NotificationManager有两个方法:notify()发出通知 cancel( )取消通知

     //1.实例化一个NotificationManager对象;如:manager。通过getSystemService方法获得

    NotificationManager manager=(NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

    //2.实例化一个NotificationCompat.Builder对象;如builder

    NotificationCompat.Builder builder = newNotificationCompat.Builder(this)

    //3.调用builder的相关方法对notification进行上面提到的各种设置;

    .setSmallIcon(R.drawable.ic_launcher)               //小图标

    .setContentTitle("My notification")                          //内容标题

    .setContentText("Hello world!")                              //内容

    .setTicker("来信息啦。。。");

    //4.调用builder.build()方法此方法返回一个notification对象;

    Notification notification=builder.build();

    //5.调用managernotify方法发送通知

    manager.notify(1, notification);

    // manager.notify(id, notification); 发送一个通知

    // manager.cancel(id); 取消通知

    // 1. 通过getSystemService()方法得到NotificationManager对象:

    String ns = Context.NOTIFICATION_SERVICE;

    NotificationManager mNotificationManager =(NotificationManager) getSystemService(ns);

    // 2. 初始化Notification: 

    int icon =R.drawable.notification_icon;        // 设置通知的图标

    CharSequence tickerText ="Hello";               //通知提示,显示在状态栏中的文字

    long when =System.currentTimeMillis();     // 设置来通知时的时间

    Notification notification = newNotification(icon, tickerText, when);

    // 3. 定义通知的信息和PendingIntent: 

    Context context = getApplicationContext(); 

    CharSequence contentTitle = "Mynotification"; 

    CharSequence contentText = "HelloWorld!"; 

    Intent notificationIntent = newIntent(this, MyClass.class);        // 单击通知后会跳转到NotificationResult类

    // 获取PendingIntent,点击时发送该Intent

    PendingIntent contentIntent =PendingIntent.getActivity(this, 0, notificationIntent, 0);

    notification.setLatestEventInfo(context,contentTitle, contentText, contentIntent);   //设置通知的标题和内容

    //notification.setLatestEventInfo(NotificationActivity.this, "标题","内容", contentIntent);

    // 4. 通过NotificationManager对象的notify()方法来执行一个notification的消息: 

    private static final int HELLO_ID = 1; 

    mNotificationManager.notify(HELLO_ID,notification); 

  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/anyuan9/p/6171607.html
Copyright © 2011-2022 走看看