1. 进程间通信IPC
IPC是“Inter-ProcessCommunication”的缩写,即进程间通信。Android为APP提供了多进程工作模式,这是因为多线程存在若干局限:
1、多线程共存于一个进程中,而该进程可用的内存容量是固定的,多线程不会拓展app可用的内存大小。所以如果app的性能瓶颈在内存,那么多线程并不能提高处理速度。
2、app在响应用户操作之外,还想完成某些系统管理的任务,比如说双守护进程防止被意外杀掉、比如说app集成第三方插件要定期推送消息,以及其他类似服务端系统管理的功能。
另外,进程间通信不局限于两个APP进程直接通信,也包括APP与系统进程通信,以及进程间通过文件、广播等手段间接通信。
2. Notification
Android的消息通知栏放的是APP想即时提醒用户的消息,Notification就是这么一个由APP提供的通知推送内容,每条通知基本都有这些元素:图标、标题、内容、时间等等,它的参数通过建造者模式来构建。
下面是Notification.Builder常用的构建参数方法:
setWhen : 设置推送时间,以“小时:分钟”格式显示
setShowWhen : 设置是否显示推送时间
setUsesChronometer : 设置是否显示时间计数。为true时将不显示推送时间,动态显示从通知被推送到当前的时间间隔,以“分钟:秒钟”格式显示
setSmallIcon : 设置状态栏里面的图标(小图标)
setTicker : 设置状态栏里面的提示文本
setLargeIcon : 设置下拉列表里面的图标(大图标)
setContentTitle : 设置下拉列表里面的标题文本
setContentText : 设置下拉列表里面的内容文本
setSubText : 设置下拉列表里面的附加说明文本,位于内容文本下方。若调用该方法,则setProgress的设置将失效
setProgress : 设置进度条与当前进度。进度条位于标题文本与内容文本中间
setNumber : 设置下拉列表右下方的数字,可与setProgress联合使用,表示进度条的当前进度数值
setContentInfo : 设置下拉列表右下方的文本。若调用该方法,则setNumber的设置将失效
setContentIntent : 设置内容的PendingIntent,在点击该通知时触发Intent动作
setDeleteIntent : 设置删除的PendingIntent,在滑掉该通知时触发Intent动作
setAutoCancel : 设置该通知是否自动清除。若为true,点击该通知后,通知会自动消失;若为false,点击该通知后,通知不会消失。
setSound : 设置通知推送时的声音
setVibrate : 设置通知推送时的震动方式
setOngoing : 设置该通知是否保持在下拉列表中。为true时用户将不能从下拉列表中去掉该通知
setPriority : 设置该通知的优先级
setExtras : 设置该通知的Bundle参数信息
setContent : 设置一个定制视图RemoteViews,用于取代Builder的默认视图模板
build : 构建方法。在以上参数都设置完毕后,调用该方法会返回Notification对象
NotificationManager:Notification只是生成通知的内容,实际推送动作还需要借助于系统的通知服务来实现。NotificationManager便是系统通知服务的管理类,它的常用方法如下:
notify : 推送指定通知到状态栏和下拉列表
cancel : 取消指定通知。调用该方法后,状态栏和下拉列表中的指定通知将消失
cancelAll : 取消所有通知
3. PendingIntent
PendingIntent意即延迟的Intent,主要用于非立即响应的通信场合。有用到它的场合如下:
1、用于定时器AlarmManager,处理时刻到达后的提醒动作
2、用于通知推送Notification,处理点击通知后的相应动作
3、用于远程视图RemoteViews,处理远程控件上的点击动作
4、用于发送短信SmsManager,处理短信发送完的后续动作