美文网首页Android
Notification详解

Notification详解

作者: ProZoom | 来源:发表于2017-09-22 16:11 被阅读38次

    Notification详解

    Notification的使用步骤

    //1.获取NotificationManager
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
    //2.设置消息频道
    String id = "my_channel_01";
    int importance = NotificationManager.IMPORTANCE_LOW;
    NotificationChannel mChannel = new NotificationChannel(id,"name",importance);
    mChannel.enableLights(true);
    mNotificationManager.createNotificationChannel(mChannel);
    
    //3.创建NotificationCompat.Builder
    Notification.Builder notification = new Notification.Builder(MainActivity.this , id)
                      .setContentTitle("Title")
                      .setSmallIcon(R.mipmap.ic_launcher)
                      .setContentText("主要内容");
                      
    //4.(可选步骤)设置点击通知栏里信息的事件
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0,  new Intent(this,Activity2.class), PendingIntent.FLAG_CANCEL_CURRENT);
    notification.setContentIntent(contentIntent);
    //5.发布通知消息
    int notifyId=2;
    mNotificationManager.notify(notifyId, notification.build());
    

    自定义Notification样式

    //自定义Notification样式布局
    RemoteViews remoteViews=new RemoteViews("com.top.notification",R.layout.notification_layout);
    
    
    //1.获取NotificationManager
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
    //2.设置消息频道
    String id = "my_channel_01";
    int importance = NotificationManager.IMPORTANCE_LOW;
    NotificationChannel mChannel = new NotificationChannel(id,"name",importance);
    mChannel.enableLights(true);
    mNotificationManager.createNotificationChannel(mChannel);
    
    //3.创建NotificationCompat.Builder
    Notification.Builder notification = new Notification.Builder(MainActivity.this , id)
                      .setContentTitle("Title")
                      .setSmallIcon(R.mipmap.ic_launcher)
                      .setContentText("主要内容")
                      .setContent(remoteViews);    //主要多了这个!!!!!
                      
    //4.发布通知消息
    int notifyId=2;
    mNotificationManager.notify(notifyId, notification.build());
    

    自定义Notification样式里控件的点击事件

    
    //举个例子,音乐播放器的通知栏里的控制播放事件,可以通过发送一个广播或者启动服务,通过判断Intent来确定是啥事件
    PendingIntent pendingIntent=PendingIntent.getService(this,
                    requestzCode,
                    new Intent(this,BroadCastReceiverdemo.class),
                    flags);
    
    remoteViews.setOnClickPendingIntent(R.id.btn_notification,pendingIntent);
    

    相关文章

      网友评论

        本文标题:Notification详解

        本文链接:https://www.haomeiwen.com/subject/cmufextx.html