Android Notification和权限机制探讨

最近为了在部门内做一次小型的技术分享,深入了解了一下Notification的实现原理,以及android的权限机制。在此做个记录,文章可能比较长,没耐心的话就直接看题纲吧。


先看一下下面两张图

图一:


看到这图可能大家不太明白,这和我们的notification有什么关系,我来简单介绍一下背景,这是发生在15年NBA季后赛期间,火箭队对阵小牛队,火箭队以3:1领先,只要再赢一场就能淘汰对手,这时候火箭队的官方首席运营官发了这条官方推特。翻译一下就是 “一把枪指着小牛的队标,哼哼,只需要闭上你们额眼睛,马上就要结束了”。这条推特当时引起了很多人的转发和评论,并且推送给了所有关注相关比赛的球迷以及媒体。我们试想一下,你是一个小牛的球迷,输了比赛以后本来心情就很差,这时候手机一震,收到这条通知栏推送,你是不是会有一种强烈的被蔑视感觉。当天推特上就掀起了一阵网络争议,不仅小牛球迷,其他中立球迷也表示这条推特讽刺意味十足,已经有侮辱对手的嫌疑了。当然了,通知栏表示我不背这个锅,谁来背?第二天,这位首席运营官就被火箭官方开除了,并宣称此推特仅代表前运营官个人意见与火箭队无任何关系。


图二:





说完别人,再来说说我们自己吧。3月5日那天,群里都在讨论这条推送,本意是我们的编辑打算推一个分手相关的歌单,但是文案考虑不周全,让人误解。导致很多用户感到莫名其妙,我们试想一下,你准备与你最近交往的对象一起吃个晚餐,出门前收到这条祝我们分手的通知,你是不是感到很不爽呢。是的,在微博上随手一搜就发现有很多用户是这种不爽的感觉了。当然了我拿这个对比并没有说要炒这位编辑的鱿鱼噢。



好像偏题很远了,说这么多其实就是想说明一件事,应用程序的通知是非常重要的一环,处理的不好很可能给用户带来不好的印象,轻则吐槽,重则直接卸载。

好了好了,言归正传,我先列一下题纲吧

一、Notification的使用

二、Notification跨进程通信的源码分析

三、优雅地设计通知(7.0)

四、通知权限问题

五、安卓的权限机制(6.0)

六、总结



一、Notification的使用

目前咱们酷狗里的通知使用主要有以下三种场景

1.消息中心的通知

2.下载歌曲的通知

3.通过PlaybackService启动的通知

下面简单分析一下这三种场景的通知是如何实现的。

第一种是使用系统布局生成的普通通知样式


NotificationManagerCompat manager = NotificationManagerCompat.from(this);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle()  [1]
.setLargeIcon()       	   [2]
.setContentText()  	   [3]
.setNumber()         	   [4] 
.setSmallIcon()       	   [5]
.setWhen()            	   [6]
.setContentIntent(pendingIntent);
manager.notify(tag, id, builder.build());


第二种是使用自定义的布局生成的通知样式

NotificationManagerCompat manager = NotificationManagerCompat.from(this);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setWhen()
.setSmallIcon()
.setLargeIcon()
.setContentIntent(pendingIntent);
RemoteViews remoteView = new RemoteViews(getPackageName,  R.layout.custom);
remoteView.setTextViewText(R.
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值