Android 中通知的基本使用

作者: 沈凤德 | 来源:发表于2017-02-16 15:04 被阅读2600次

    通知--一般当我在手记下拉的时候会发现一排信息提示(天气情况,qq消息,UC推荐,58推荐等等),这些就是通知。


    通知分为三种:普通广播  自定义广播   大视图广播。

    普通广播的创建:

    通知的内容和属性:NotificationCompat内部的builder类进行通知的内容进行设置,各种set方法;

    通知的属性:通过Notification实例的falg设置通知属性;

    通知实例的获得:通过Builder类的builder()方法创建;

    通知的发送:通过notificationManger的notify()方法发送通知;

    普通通知的创建发送以及方法讲解:

    1.创建Notification的builder类

    NotificationCompat.Builder  builder=new NotificationCompat.Builder(this);

    2.利用builder实例设置Notification属性:

    //设置通知标题栏内容

    builder.setContentTitle("通知的标题")

    //设置通知详细信息栏内容

    .setContentText("通知的内容")

    //设置大小图标会在下main继续讲

    .setSmallIcon(R.mipmap.ic_launcher)

    .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.aa))

    .setTicker("状态栏中提示内容")

    //设置通知栏点击执行的意图 pendingIntent(也就是点击完成跳转);

    .setContentIntent(pendingIntent)

    //设置通知集合的数量(没用到过)

    .setNumber(6)

    //通知产生的时间,会在通知信息里显示,一般是系统获取到的时间

    //如果不写,默认为通知发出时系统的时间;

    .setWhen(System.currentTimeMillis())

    //设置该通知优先级(在广播中用过这个属性)

    .setPriority(Notification.PRIORITY_DEFAULT)

    //设置这个标志当用户单击面板就可以让通知将自动取消

    .setAutoCancel(false)

    //点击或则侧滑通知,通知不会消失;利用它设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)

    .setOngoing(true);

    //提示模式

    .setDefaults(Notification.DEFAULT_VIBRATE)

    方法详解:

    .setSmallIcon(R.mipmap.ic_launcher)

    .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.aa))

    .setTicker("状态栏中提示内容")

    第一种:当只设置了SmallIcon没有设置LargeIcon的时候:SmallIcon的图标将会出现在LargeIcon的位置,而小图标位置将不会又图标。

    第二中:当既有SmallIcon又有LargeIcon的时候,LargeIcon将会出现在LargeIcon位置,SmallIcon也会出现在SmallIcon的位置;

    setTicker()是在通知发出的时候,在状态栏弹出的提示内容(弹出提示的内容又小图标和Ticker方法中的内容)

    注意:小图标必须有,否则将无法显示通知;

    .setPriority(Notification.PRIORITY_DEFAULT)//设置通知的优先级别

    Notification.PRIORITY_DEFAULT     默认

    Notification.PRIORITY_HIGH             高

    Notification.PRIORITY_LOW              低 

    Notification.PRIORITY_MAX              最高

    Notification.PRIORITY_MIN               最低

    .setDefaults(int defaults)(需要 VIBRATE permission) ;

    功能:向通知添加声音、闪灯和振动效果的最简单、使用默认(defaults)属性,可以组合多个属性

    对应属性:

    Notification.DEFAULT_VIBRATE    //添加默认震动提醒  

    Notification.DEFAULT_SOUND    // 添加默认声音提醒

    Notification.DEFAULT_LIGHTS// 添加默认三色灯提醒

    Notification.DEFAULT_ALL// 添加默认以上3种全部提醒


    setVibrate(long[] pattern)设置自定义震动模式

    //延迟0ms,然后振动200ms,在延迟200ms,接着在振动300ms。

    .setVibrate(new long[] {0,200,200,300});


    //设定自定义灯光

    .setLights(int RGB,int onTime,int lowLight)

    参数说明:

    RGB 表示灯光颜色、 onTime亮持续时间、lowLight暗的时间。

    注意:只有在设置了标志符Flags为Notification.FLAG_SHOW_LIGHTS的时候,才支持三色灯提醒。

    这边的颜色跟设备有关,不是所有的颜色都可以,要看具体设备。


    设定自定义音乐

    setSound(Uri music)

    .setSound(Uri.parse("file:///sdcard/xx/xx.mp3"))


    进度条的说明:

    setProgress(int  max  ,int  value  ,boolean  sure);

    参数说明:

    max---进度条最大值;

    value---进度条当前值;

    sure----进度条进度是否确定;

                true为进度条不确定,max与value就不会在进度条中显示;

                 false进度条确定,max与value正常显示

    进度条取消:setProgress(0, 0, false)

    方法版本问题:4.0后才可以在buidler中调用setProgress()方法;


    //获得Notification实例

    NotificationCompat  notificaton=builder.buidler();

    //通过Notification的flag设置属性;

    设置属性代码:

    notification.flags = Notification.FLAG_AUTO_CANCEL;

    提醒标志符成员:

    Notification.FLAG_SHOW_LIGHTS      //三色灯提醒,在使用三色灯提醒时候必须加该标志符

    Notification.FLAG_ONGOING_EVENT   //发起正在运行事件(活动中)

    Notification.FLAG_INSISTENT//让声音、振动无限循环,直到用户响应(取消或者打开)

    Notification.FLAG_ONLY_ALERT_ONCE//发起Notification后,铃声和震动均只执行一次

    Notification.FLAG_AUTO_CANCEL      //用户单击通知后自动消失

    Notification.FLAG_NO_CLEAR         //只有全部清除时,Notification才会清除,不清楚该通知(QQ的通知无法清除,就是用的这个)

    Notification.FLAG_FOREGROUND_SERVICE    //表示正在运行的服务


    自定以通知的基本使用:

    自定布局的创建:

    RemoteViews mRemoteViews = new RemoteViews(String packageName, int layoutId);

    参数说明:packageName :报名,通过getPackageName()

                      layoutId:加载自定义布局ID;


    设置自定义布局的属性:

    设置的图片属性

    mRemoteViews.setImageViewResource(int viewId, int srcId);

    参数说明   viewId  为自定义布局中,Button等布局的ID;

                      srcId  为需要设置图片的ID;

    设置点击意图:

    mRemoteViews.setOnClickPendingIntent(int viewId,PendingIntent pendingIntent);

    参数说明:viewId    为自定义布局中,Button等布局的ID;

                      pendingIntent   为点击相应按钮需要执行的意图;

    添加自定义布局:

    mBuilder.setContent(mRemoteViews)

    NotificationManager的发送,更新,删除

    notificationManager.cancel(int ID);

    参数说名:ID为发送通知的时候设置的ID;取消该ID;

    notify(int id, Notification notification); // 将通知加入状态栏,,标记为id

    参数说明:id相当于notification的一一对应标志;

    // 在Android进行通知处理,首先需要重系统哪里获得通知管理器NotificationManager,它是一个系统Service。

    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    还有大图风格---尚未完成

    相关文章

      网友评论

        本文标题:Android 中通知的基本使用

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