- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android AppWidget开发 从MVC结构上来说,AppWidget是Launcher上的一个View,AppWidgetManager是它的controller,client package(如com.baidu.searchbox)是它的model。 在client package中,AppWidgetProvider用来提供AppWidget的生命周期响应事件,AppWidgetProviderInfo用来提供AppWidget的初始layout id等信息,AppWidget Configuration用来提供AppWidget的配置界面。 AppWidgetManager通过它的updateAppWidget方法驱动AppWidget的View进行UI更新。而AppWidget又通过RemoteViews来获取client package提供的UI更新信息。 由于Launcher与client package通讯属于IPC,所以,一般都使用AlarmManager来实现AppWidget的定期更新。 AppWidgetProvider 本质: 一个可以接收ACTION_APPWIDGET_UPDATE、 ACTION_APPWIDGET_ENABLED、 ACTION_APPWIDGET_DELETED 、以及ACTION_APPWIDGET_DISABLED的broadcast receiver。这些action对应了AppWidget的更新通知和生命周期,即onUpdate、onEnabled、onDeleted、onDisabled。 使用方法: 与其它静态静态注册的receiver一样,在manifest中添加声明,并在代码中定义。 注意事项: manifest声明处必须显式添加接收ACTION_APPWIDGET_UPDATE的intent filter,否则无法在widget列表中找到该widget。 由于它是个broadcast receiver,所以只在onReceive方法中才被视为foreground组件(被系统杀死的可能性最小的组件),离开了该方法,就相当于onDestroy后的Activity,是个空组件,所以不要在其中执行异步操作,如sendMessage或者另开线程。 onReceive方法也在主线程中执行,发生了ANR之后,默认是不弹出Dialog的。如果需要执行耗时的操作,最好使用service来另开线程执行。 生命周期(onEnabled、onUpdate、onDeleted、onDisabled)其实都是在onReceive中执行。 onUpdate会在添加widget(有configuration的除外)、覆盖安装应用、系统设置改变等场景触发。它的本质是将widget的UI重置为初始状态后(AppWidgetProviderInfo中的initialLayout),提供给应用程序一个更新UI的机会(调用AppWidgetManager的updateAppWidget方法)。 AppWidgetProviderInfo 本质: Widget的基本设置信息,包括区域大小、initialLayout以及配置界面等,与AppWidgetProvider一一对应。Android3.0后增加了previewImage项(此项必须设置,否则在3.0以上系统上看不到预览图)。 使用方法: 定义成一个xml,放在res/xml目录中,并在manifest中以meta的形式声明在AppWidgetProvider里,否则widget列表中也无法找到该widget。 注意事项: Widget执行onUpdate之前,都会根据AppWidgetProviderInfo中的initialLayout来重置UI。因此,尤其在有AppWidget Configuration的widget中,initialLayout最好使用另一种UI形式。如时钟widget,initialLayout设为“正在加载中”的界面,而不是默认为模拟时钟或者数字时钟,以免在widget触发onUpdate时,出现数字时钟变为模拟时钟(或者模拟时钟变为数字时钟)的情况,造成短暂的混乱。 AppWidgetProviderInfo由launcher解析后放入自己的进程中,并只能在重新安装应用程序后根据AppWidgetProvider的meta重新解析并更新(参考AppWidgetService.java中的updateProvidersForPackageLocked方法)。如果该AppWidgetProvider在新版中不复存在,那么AppWidgetProviderInfo中的layout id就不会更新,如果在新版中不
您可能关注的文档
- !!!!!Cocoa基本原理指南.pdf
- #pragma用法讲解(补字).pdf
- 《从零开始学+Python》第二版+v1.1.pdf
- 《算法设计手册》第2版 中文版330页.pdf
- 30种java技术框架-方案架构图汇总.pdf
- ActiveMq-JMS简单实例使用tomcat.doc
- Android-JNI开发入门与提高.doc
- ANDROID-NDK编程入门笔记.doc
- Android-NDK环境搭建及遇到的问题详解.docx
- android-rtsp流媒体播放介绍.doc
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
有哪些信誉好的足球投注网站
文档评论(0)