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

  • 相关阅读:
    如何降低微服务测试成本?我的经验之谈
    Serverless 在 SaaS 领域的最佳实践
    技术干货 | “选图预览并上传”的场景如何解?全网最全方案汇总来了
    SRE技术保障平台-盯屏中心TAC: 混合云一站式告警运维平台
    DTCC 2020 | 阿里云王涛:阿里巴巴电商数据库上云实践
    中值滤波算法 C
    python logger.debug_python中的logger模块讲解
    唯一值
    接触jeecgBoot低代码开发
    php数字操作
  • 原文地址:https://www.cnblogs.com/anyuan9/p/6171607.html
Copyright © 2011-2022 走看看