佳木斯城乡建设局网站,做网站的必要条件,做网站的需求分析,wordpress可以建站吗Android Notification总结 目录[-]
#xfeff;#xfeff;一、通知的主要功能 二、通知简介 三、通知的使用流程 四、使用NotificationCompat.Builder设置通知的属性#xff1a; 五、管理通知
#xfeff;#xfeff;一、通知的主要功能 显示接收到短消息、即使消息等信…Android Notification总结 目录[-]
一、通知的主要功能 二、通知简介 三、通知的使用流程 四、使用NotificationCompat.Builder设置通知的属性 五、管理通知
一、通知的主要功能 显示接收到短消息、即使消息等信息 如QQ、微信、新浪、短信等此类消息一般有多条时会采用摘要的形式显示展开则显示通知详情 显示客户端的推送消息如新版本发布广告推荐新闻等 显示正在进行的事物一般在通知中显示进度条显示后台程序运行进度如音乐播放器、新版本下载进度等
二、通知简介 基本布局 普通视图的通知 BigView视图的通知此类通知需要通过setStyle属性设置摘要区可以添加自定义的操作 相关类使用通知的时候主要涉及两个类Notification 和 NotificationManager一般为了拓宽通知的适用范围推荐使用支持库中的通知类NotificationCompat和NotificationCompat.Builder Notification 通知类该类中包含通知的各种属性和方法一般通过NotificationCompat.Builder设置通知的各个属性值 NotificationManager状态栏通知管理类该类负责应用中所有通知的发送、清除等管理操作该类是一个系统服务需要通过 (NotificationManager)getSystemService(NOTIFICATION_SERVICE)方法获得
三、通知的使用流程 通过NotificationCompat.Builder mBuilder new NotificationCompat.Builder(this)获得一个通知的Builder对象 调用mBuilder的方法设置通知属性如setSmallIcon(int drawable)、satContentTitle(CharSquence title)等为通知设置小图标、内容标题 通过mBuilder.build()方法获得一个Notification对象 获得一个通知管理器NotificationManager nm (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE)通过nm.notify(int id, Notification notification)方法发送通知至此通知便已经发送出去
四、使用NotificationCompat.Builder设置通知的属性
RemoteViews remoteView new RemoteViews(mContext.getPackageName(), R.layout.custom_notification);
Bitmap mBitmap BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_summary_notice);
Intent intent new Intent(mContext, IconifyActivity.class);
PendingIntent pendingIntent PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder new NotificationCompat.Builder(mContext).setTicker(ticker) //新来通知时在状态栏现实的文本.setContentTitle(content title) //设置通知标题.setContentText(content text) //设置通知文本.setSmallIcon(R.drawable.ic_notice_1) //设置通知左上角小图标.setContentIntent(pendingIntent) //设置点击通知的操作.setDeleteIntent(pendingIntent) //设置删除通知时的操作.setWhen(System.currentTimeMillis()) //设置通知上的时间戳.setProgress(0, 0, true) //设置进度条.setStyle(new NotificationCompat.BigTextStyle()) //设置通知样式主要包括默认样式、BigTextStyle、BigPictureStyle和InboxStyle.setContent(remoteView) //设置通知使用自定义的视图而非系统默认视图.setLargeIcon(mBitmap) //设置通知大图标.setAutoCancel(true) //设置用户点击通知后是否自动清除通知true清除false不清.setNumber(count) //设置通知右下角显示的数字.setDefaults(NotificationCompat.DEFAULT_ALL) //设置应用于通知上的默认动作如声音、三色灯、振动等.setLights(0x0000ff, 300, 300)//设置通知三色灯.setVibrate(new long[]{0, 300, 500, 700}) //自定义振动.setSound(Uri.parse(file:///sdcard/xx/xx.mp3)) //自定义通知提示音.setOngoing(false) //设置是否为一个后台任务默认为否true表示是一个正在进行的后台任务如音乐播放、文件下载、数据同步等.setPriority(NotificationCompat.PRIORITY_DEFAULT) //设置该通知相对重要性.setColor(0x00ff00) //设置通知颜色.setVisibility(NotificationCompat.VISIBILITY_PUBLIC) //设置通知的可见性取值为VISIBILITY_PRIVATE默认、VISIBILITY_PUBLIC、VISIBILITY_SECRET中的一种.setContentInfo(content info) //设置通知右侧的大文本内容.setFullScreenIntent(pendingIntent, false) //设置一个直接全屏加载的动作而不是发送通知至通知栏.setExtras(new Bundle()) //设置通知的元信息.setCategory(NotificationCompat.CATEGORY_MESSAGE) //设置通知所属类别.setGroup(NotificationCompat.CATEGORY_CALL) //设置该通知为分享同一通知键值的通知组中的一部分.setGroupSummary(false) //设置该通知为一个通知组中的摘要通知.setUsesChronometer(false) //使用计时器而非时间戳来显示时间.setSubText(sub text) //设置扩展视图中的子文本内容.setLocalOnly(false) //设置该通知是否只在当前设备上显示默认为否.setOnlyAlertOnce(false) //设置是否只提示一次.setSortKey(sort key); //设置针对一个包内的通知进行排序的键值 下面对部分方法进行详细解释 setContentIntent(PendingIntent intent)和setDeleteIntent(PendingIntent intent)设置点击该通知或删除该通知时需要进行的操作参数为一个PendingIntent 由该PendingIntent 指定操作意图 setProgress(int max, int progress, boolean indeterminate)设置通知中包含一个ProgressBar类型的进度条注意此方法在4.0及以后版本才有用如果为早期版本需要自定义通知布局其中包含ProgressBar视图 max进度条的最大值 progress当前已完成的进度值一般来说当操作完成时progress应等于max通常将max值设为100然后将progress值设为当前完成值占max的百分比 indeterminate一个boolean类型值表示当前的进度条是为indeterminatetrue还是determinatefalse setDefaults(int defaults)设置应用于通知上的默认提示音、震动、灯光灯取值只能为以下三种中的一种或多种的组合当默认灯光、震动、提示音全采用时可以使用Notification.DEFAULT_ALL Notification.DEFAULT_VIBRATE添加默认震动提醒 需要 VIBRATE permission Notification.DEFAULT_SOUND添加默认声音提醒 Notification.DEFAULT_LIGHTS添加默认三色灯提醒 setLights(int argb, int onMs, int offMs)自定义通知提示的三色灯灯光颜色和闪烁频率可用于区分不同的应用场合下的通知信息只有设置了标志符Flags为Notification.FLAG_SHOW_LIGHTS的时候才支持三色灯提醒同时并非所有的设备都支持所有的灯光颜色 argb三色灯的颜色 onMs三色灯亮时的持续时间单位毫秒 offMs三色灯暗时的持续时间单位毫秒 setVibrate(long[] pattern)设置通知的振动模式如setVibrate(new long[] {0,300,500,700})表示延迟0ms振动300ms然后延迟500ms振动700ms以此类推 setSound(Uri sound)设置通知的提示音可以是自定义的提示音也可以是默认提示音 setSound(Uri.parse(file:///sdcard/xx/xx.mp3))设置提示音为自定义的铃声 setSound(Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, 5))表示获取Android多媒体库中的铃声 setPriority(int pri)设置通知的相对优先级系统会根据不同优先级的通知采用不同的显示方式从而影响用户在不同优先级的通知上所消耗的时间及被打扰程度不过一般来说系统安排通知时的优先级包含多个方面setPriority只是影响其中的一个方面具体情况因平台不同而稍有不同 pri通知的相对优先级一个整形值取值范围为-2最低优先级到2最高优先级 下表列出了不同优先级所对应的常量及所呈现的效果和用途
优先级 PRIORITY_MAX(2)最高优先级重要而紧急的通知通知用户这个事件是时间上紧迫的或者需要立即处理的PRIORITY_HIGH(1)高优先级用于重要的通信内容例如短消息或者聊天这些都是对用户来说比较有兴趣的PRIORITY_DEFAULT(0)默认优先级用于没有特殊优先级分类的通知PRIORITY_LOW(-1)低优先级可以通知用户但又不是很紧急的事件PRIORITY_MIN(-2)最低优先级用于后台消息 (例如天气或者位置信息)最低优先级通知将只在状态栏显示图标只有用户下拉通知抽屉才能看到内容
注意如何选择合适的优先级 DEFAULT、HIGH 和 MAX 是中断优先级别在活动过程中有中断用户的风险。 为了避免打扰应用的用户中断优先级仅保留用于以下通知 涉及另一个用户 时间敏感 可能会立即改变用户在现实世界中的行为
LOW 和 MIN优先级通知的条件包括 不涉及其他用户 不属于时间敏感型 包含用户可能感兴趣但可选择在空闲时浏览的内容 setVisibility(int visibility)设置通知在锁屏状态下所显示的信息详细程度visibility的取值为以下三种之一 VISIBILITY_PUBLIC 显示通知的完整内容 VISIBILITY_SECRET锁屏状态下不显示此通知的任何部分 VISIBILITY_PRIVATE默认锁屏时显示通知图标和内容标题等基本信息但是隐藏通知的完整内容使用该值时还可以提供其中隐藏了某些详细信息的替换版本的通知内容 setFullScreenIntent(PendingIntent intent, boolean highPriority)当设置该属性值时所对应的通知将不会以通常所见的通知形式发送到用户的状态栏而是会全屏显示参数intent对应的意图这类通知一般是优先级非常高需要用户进行即时处理的通知如来电、闹钟等注意如若想在其他场景中使用该类型通知一般需要为用户提供开关此类通知的功能否则可能会因为过度打扰用户而引起用户不满 setCategory(String category)设置通知所属的类别category字符串必须为如下系统预定义的通知类别之一该值主要用于系统排序和过滤 CATEGORY_CALL来电语音或视频或相似的同步通信请求 CATEGORY_MESSAGE传入的直接消息短信、即时消息等 CATEGORY_EMAIL异步群发消息电子邮件 CATEGORY_EVENT日历事件 CATEGORY_PROMO促销或广告 CATEGORY_ALARM闹铃或定时器 CATEGORY_PROGRESS长时间运行的后台操作的进度 CATEGORY_SOCIAL社交网络或共享更新 CATEGORY_ERROR后台操作或身份验证状态中的错误 CATEGORY_TRANSPORT媒体传输播放控制 CATEGORY_SYSTEM系统或设备状态更新。保留给系统使用 CATEGORY_SERVICE正在运行的后台服务的指示 CATEGORY_RECOMMENDATION对于某个事件的特定、及时建议。例如新闻应用可能会建议用户接下来可能想要阅读的新话题 CATEGORY_STATUS有关设备或上下文状态的持续信息
五、管理通知 删除通知除非发生以下情况之一否则通知仍然可见 用户单独或通过使用“全部清除”清除了该通知如果通知可以清除 用户点击通知且在创建通知时调用了 setAutoCancel(true) 针对特定的通知 ID 调用了 cancel()此方法还会删除当前通知 调用了 cancelAll() 方法该方法将删除之前发出的所有通知 浮动通知对于 Android 5.0API 级别 21当设备处于活动状态时即设备未锁定且其屏幕已打开通知可以显示在小型浮动窗口中也称为“浮动通知”。 这些通知看上去类似于精简版的通知只是浮动通知还显示操作按钮。 用户可以在不离开当前应用的情况下处理或清除浮动通知。可能触发浮动通知的情况有 用户的 Activity 处于全屏模式中 通知的优先级字段设置为 PRIORITY_MAX 或 PRIORITY_HIGH 且通知设置有声音或振动
浮动通知的使用范例有使用设备时来电使用设备时闹铃新的短信电池电量过低 注意事项 虽然Android 支持在通知底部显示可选的操作但在使用这一功能时需要注意对操作进行筛选一般通知中应只包含最重要且有意义的操作适合在通知中使用的操作为对正在显示的内容类型必要、常用且常见让用户可以迅速完成任务而那些语义含义模糊或跟通知的默认操作一样的操作则不适合添加在通知中 注意利用通知的排名和排序 通知属于新闻因此基本以时间倒序显示并且会特别考虑应用规定的通知优先级。 通知是锁定屏幕的关键部分并且在设备显示屏每次亮起时突出显示。 锁定屏幕上的空间有限因此确定哪些通知最为紧急或最密切相关非常重要。 由于这个原因Android 在处理通知时使用了更为精密的排序算法考虑到以下因素 时间戳以及应用规定的优先级 通知是否最近以声音或振动形式告知过用户 与使用 EXTRA_PEOPLE 的通知相关的任何人尤其是加星标的联系人