Android 中通知的基本使用

通知--一般当我在手记下拉的时候会发现一排信息提示(天气情况,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);

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容