Android--Notifaction通知栏(Android8)

Notifaction通知栏:

由于AndroidSdk版本不同,操作通知栏也不同

下面是我编写的一个Base工具类

package com.study.test.testapplication.util;

import android.annotation.TargetApi;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;
import android.support.v4.app.NotificationCompat;

import com.study.test.testapplication.app.MyApplication;

/**
 * Create by BruceXuheng on 2018/6/8
 * description :
 *      发送Notifaction广播工具类
 *      由于sdk26之后的初始化以及使用方法不同,首先判断当前sdk版本是否大于26
 *
 *
 **/

public class NotifactionUtil {

    private static NotificationManager manager;
    public static final String id = "chenxh_id";
    public static final String name = "chenxh_name";
    private static NotificationManager getManager(Context context){
        if (manager == null){
            manager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
        }
        return manager;
    }

    @TargetApi(26)
    public static void createNotificationChannel(Context context){
        NotificationChannel channel = new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH);
        getManager(context).createNotificationChannel(channel);
    }

    @TargetApi(26)
    public static Notification.Builder getChannelNotification(Context context,String title, String content){
        return new Notification.Builder(context, id)
                .setContentTitle(title)
                .setContentText(content)
                .setSmallIcon(android.R.drawable.stat_notify_more)
//                .setPriority(NotificationCompat.PRIORITY_MAX)
                .setAutoCancel(true);
    }
    public static NotificationCompat.Builder getNotification_25(Context context,String title, String content){
        return new NotificationCompat.Builder(context)
                .setContentTitle(title)
                .setContentText(content)
                .setSmallIcon(android.R.drawable.stat_notify_more)
                .setAutoCancel(true);
    }

    public static void sendNotification(Context context,String title, String content){
        if (Build.VERSION.SDK_INT>=26){
            createNotificationChannel(context);//NotificationChannel 创建一个Notification,再去Builder
            Notification notification = getChannelNotification
                    (context,title, content).build();
            getManager(context).notify(1,notification);//管理者发送消息
        }else{
            Notification notification = getNotification_25(context,title, content).build();//先Builder
            getManager(context).notify(1,notification);//管理者发送消息
        }
    }

}

猜你喜欢

转载自blog.csdn.net/Mr_ChenXu/article/details/80669059