Notification使用 大通知

Notification使用

Notification使用 大通知_第1张图片

  1. android api 指南上很多部分谷歌 官方 已经翻译成了 中文,先看下 谷歌官方对notificatio
    的介绍:
    通知是您可以在应用的常规 UI 外部向用户显示的消息。当您告知系统发出通知时,它将先以图标的形式显示在通知区域中。用户可以打开抽屉式通知栏查看通知的详细信息。 通知区域和抽屉式通知栏均是由系统控制的区域,用户可以随时查看。

    • notification 存在两种设置 view 方式,可以选择使用系统自带的view 效果,
    • 系统通知 可以分三步 去走
    • ① 获取 NotificationManager 管理者
    • ② 构建 Notification 对象 直接New 就ok 了
    • ③ 开启通知 管理者对象.notify(int id,Notification notification);

注意

  • 使用notification 如果是一个通知的话 则id 的值 多次通知的id 的值必须相同,
    否则会开一个新的通知
  • *在使用系统自带的通知的时候,务必设置 setSmallIcon(int resid),否则程序报错
    -* 注意在通过通知 转到本 activity时 activity 的launchMode 应该设置*
    为singleTask模式

使用系统通知界面

  • 在使用notification 进行开发时,若果没有特殊要求我们可以采用系统。自带的通知进行开发,
  • 其构建 构建管理者对象 和 构建 发送通知的步骤都是一样的,可看上文,构建Notification 对象,以及属性设置如下:

  • 获取 NotificationManager 对象:

api 中:

Use with getSystemService(Class) to retrieve a AccessibilityManager for giving the user feedback for UI events through the registered event listeners.

通过getSystemService(String name) 方法获取 , 由上文可见 上边方法 为上下文的方法

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);//其中name 的参数表示 获得一个Notification 对象

` build = new NotificationCompat.Builder(this)
            .setContentTitle("标题") //大保健
            .setContentText("通知来了")//去个火
            .setSubText("smallText")// 小保健`

        // 设定为 OneShut 之后 自动消失比较好
            .setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT))    //参数为显示一次
            .setAutoCancel(true)//点击启动之后 图标消失
            .setVibrate(new long[]{300, 200, 300, 200}) //  设置震动
            .setLights(0xffff0000, 1000, 1000)//呼吸灯
            //.setContent(views)//  指定远程  的View
            .setSmallIcon(R.mipmap.ic_launcher).build();`

notification 使用自定义view ,以及属性详解:

  • 其实自定义 view 用法 使用 系统系统自带的View 差别并不大
  • 无非就多了一个 RemoteViews view的使用 //设置远程view
  • 在现在很多app 中都使用了 大视图通知 :

    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN){
    build.bigContentView=views; // 采用大视图通知
    }

  • build.bigContentView=views;//用于api版本大于 16的时候

  • 在自定义布局上 设置 监听 方法如下:

  • RemoteViews views = new RemoteViews(getPackageName(), R.layout.nofication);//注意获取RemoteViews 对象的时候务必指定包名

    Intent play = new Intent(this, MainActivity.class);
    play.putExtra("text","播放");
    views.setOnClickPendingIntent(R.id.pau,PendingIntent.getActivity(this,0,play,PendingIntent.FLAG_CANCEL_CURRENT));

    • 官方 api 如是说:

Notification使用 大通知_第2张图片

  • 注意在使用 了 RemoteViews 之后 ,系统原生的效果 除了 smallIcon之外 便会失效

  • -

最后使用管理者,开启通知即可

你可能感兴趣的:(android,nofication)