zoukankan      html  css  js  c++  java
  • 安开发卓之Notification(一)代码直接能用

      Notification是Android中很理想的一种显示提示信息的方法,它可以将应用程序的信息传递到我们的Android桌面状态栏,采用这种消息传递方式不会影响到用户对手机的正常使用。而且Notification不仅仅可以传递文字信息,还可以传递图片信息,甚至可以将我们的控件追加到上面,只要用户不对其进行清空,那么消息将一直保存在用户桌面的状态栏当中。

    Notification通常用来进行对用户的更新提醒等消息的传递。

      Notification需要使用到NotificationManager(消息通知管理类)对消息进行管理,其创建需要五个步骤:

    (1)通过getSystemService获取Notification对象

    (2)创建一个Notification,每一个notification对应一个notification对象。

    (3)创建一个PendingIntent对象

    (4)使用notification类的setLatestEventInfo方法设置Notification对象的详细信息

    (5)使用NotificationManager对象的notify方法显示消息

    在第二步时应当注意需要设置显示在屏幕上方状态栏的通知消息、通知消息前方的图像资源ID和放出通知的时间,一般为当前时间

    (3)创建PendingIntent对象:

    由于notification可以与应用程序脱离,也就是说你的应用程序已经关闭,消息仍然显示在状态栏之中,当应用程序再次启动后,又可以重新控制这些notification,如清除、替换等工作。因此需要PendingIntent对象,该对象由安卓系统维护,因此,应用程序关闭后,消息仍然不会被释放。

    (4)在使用notify方法时需要指定Notification对象的唯一ID,这个ID必须相对于一个Notificationmanager对象来说是唯一的,否则就会覆盖相同ID的

    Notification

    NotificationManager manager  = (NotificationManager)

        getSystemService(NOTIFICATION_SERVICE);

        String notice = "您有短消息了!";

        Notification notification = new Notification(R.drawable.ic_launcher, notice,System.currentTimeMillis());

        PendingIntent contentIntent = PendingIntent.getActivity

        (getApplicationContext(), 0, getIntent(), 0);

        notification.setLatestEventInfo

        (getApplicationContext(), "小搬运工又变帅了", "华中软件龙头企业", contentIntent);

        notification.defaults = Notification.DEFAULT_SOUND;

        notification.defaults = Notification.DEFAULT_LIGHTS;

        notification.defaults = Notification.DEFAULT_VIBRATE;

        notification.defaults = Notification.DEFAULT_ALL;

        manager.notify(R.drawable.ic_launcher,notification);

    1、如果要调取声音,需用使用到:android:name=“android.permission.VIBRATE”权限

      NotificationManager.cancel(resId)清除某个数据 NotificationManager.cancelAll()清除某个NotificationManager对象中的所有消息。
    在清除完消息后,需要做一些善后工作,需要通过notification,deleteIntent来完成,deleteIntent也需要一个pendingIntent类型的变量,用于在清除所用的notification对象时调用。这个动作可以与Activity、Service、Broadcast关联。

    如果想永久保存推送的通知,需要增加代码:

    •notification.flags = Notification.FLAG_NO_CLEAR;
  • 相关阅读:
    MongoDB,无模式文档型数据库简介
    数据说话:怎样的程序员最抢手?
    猛醒:也许我们一生追求的都错了!
    中国风电生产监控平台界面
    如何跟着趋势去赚钱
    2015年最好的员工心态培养 -- 我们需要把简单的事情做到极致
    什么是程序员的核心竞争力?
    第一篇 技术选型
    .net core 读取配置文件
    .net core nlog记录日志
  • 原文地址:https://www.cnblogs.com/sunzan/p/5242799.html
Copyright © 2011-2022 走看看