- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
完全理解顶峰APP开发Android系列中的RemoteViews
完全理解顶峰APP开发Android系列中的RemoteViews
一、什么是RemoteViews
RemoteViews翻译过来就是远程视图.顾名思义,RemoteViews不是当前进程的View,是属于SystemServer进程.应用程序与RemoteViews之间依赖Binder实现了进程间通信.
二、RemoteViews的用法
RemoteViews使用最多的场合是通知栏和桌面小插件. 以通知栏为例,讲解下它的用法.
1、新建一个Notification
这里要注意是在android3.0之前都是使用如下的形式构建一个Notification
// 1.新建一个Notification对象
Notification mNotification = new Notification();
// 2.添加属性,比如标题、内容、优先级、图片等
mNotification.tickerText = 这是通知栏的标题;
mNotification.icon = R.drawable.ic_launcher;
mNotification.flags=Notification.FLAG_NO_CLEAR;
mNotification.setLatestEventInfo(this, 这是内容, 这是标题, null);
在3.0之后官方推荐使用建造者模式创建Notification.
Notification mNotification = new Notification.Builder(this)
.setContentTitle(这是标题 )
.setContentText(这是内容)
.setSmallIcon(R.drawable.ic_launcher)
.build();
Notification有很多属性,这里列举一些
- setContentTitle 设置标题
- setContentText 设置内容
- setLargeIcon 设置通知栏大图标
- setSmallIcon 设置通知栏小图标
- setContent 设置RemoteViews
- setContentIntent 当通知条目被点击,就执行这个被设置的Intent.
- setDeleteIntent 当用户点击Clear All Notifications按钮区删除所有的通知的时候,这个被设置的Intent被执行
- setLights 设置闪光灯
- setSound 设置声音
- setPriority 设置优先级
2、设置Notification的RemoteViews
如果要给通知栏使用自定义布局就要使用RemoteViews了,传入包名和相应的布局.
RemoteViews mRemoteViews=new RemoteViews(com.example.remoteviewdemo, R.layout.remoteview_layout);
然后通过setContent()传入RemoteViews 对象即可.
这里顺便讲一下PendingIntent,PendingIntent是”延迟意图”的意思,就是当满足某一条件时出触发这个Intent.通过PendingIntent的getActivity、getBroadcast、getService等分别构建一个打开对应组件的延迟Intent.
传入四个参数,context、intent、requestCode(自定义)、flag.
Intent intent=new Intent(MainActivity.this,MainActivity.class);
PendingIntent mPendingIntent=PendingIntent.getActivity(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent有4种flag.
- FLAG_ONE_SHOT 只执行一次
- FLAG_NO_CREATE 若描述的Intent不存在则返回NULL值
- FLAG_CANCEL_CU
文档评论(0)