说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

android.appwidget类剖析

HTML文档下载 WORD文档下载 PDF文档下载
随着Android 1.5的普及很多网友发现SDK中多出了appwidget这个框架。作为使用Java语言设计的Widget相比目前主流的W3C Widget有更好的运行效率和底层控制能力,今天我们就Android平台上的Widget开发做主要的讲解。

 

作者:Android开发网原创
   随着Android 1.5的普及很多网友发现SDK中多出了appwidget这个框架。作为使用Java语言设计的Widget相比目前主流的W3C Widget有更好的运行效率和底层控制能力,今天我们就Android平台上的Widget开发做主要的讲解。
  首先我们需要在androidmanifest.xml文件中加入receiver节点来接收系统广播,声明BroadcastReceiver类的方法可以直接使用intent filter来过滤系统信息,下面来自SDK中的写法。

 

作者:Android开发网

 

   随着Android 1.5的普及很多网友发现SDK中多出了appwidget这个框架。作为使用Java语言设计的Widget相比目前主流的W3C Widget有更好的运行效率和底层控制能力,今天我们就Android平台上的Widget开发做主要的讲解。

 

  首先我们需要在androidmanifest.xml文件中加入receiver节点来接收系统广播,声明BroadcastReceiver类的方法可以直接使用intent filter来过滤系统信息,下面来自SDK中的写法。

 

<receiver android:name="TestAppWidgetProvider"  android:label="@string/cwj"  android:icon="@drawable/smart_icon">    <intent-filter>        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> //这里我们需要捕获的是APPWIDGET_UPDATE这个动作    </intent-filter>    <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info" /> //定义meta数据,见下面的appwidget-provider </receiver>

我们定一个AppWidgetProviderInfo 结构,用来描述这个widget的外观,这里和layout的布局有些相似,可以设置最小的宽度为40dp,最小高度为30dp。

 

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"  android:minWidth="40dp"    android:minHeight="30dp"    android:updatePeriodMillis="86400000" //回调Timer,单位为毫秒。这里是1天=60X60X24X1000,Android手机的电能有限,频率不能太高,最好让用户自己控制    android:initialLayout="@layout/test_appwidget" //初始化时的主要布局    android:configure="com.android.tests.appwidgethost.TestAppWidgetConfigure" > </appwidget-provider>
在Widget中主要使用AppWidgetProvider做基类,刚才我们定义的BroadcastReceiver主要是更新动作ACTION_APPWIDGET_UPDATE ,与此之外还有ACTION_APPWIDGET_DELETED、ACTION_APPWIDGET_ENABLED和ACTION_APPWIDGET_DISABLED分别表示删除是、启用和禁用时触发的事件,这里是系统广播。我们通过 BroadcastReceiver类的onReceive方法来捕获。
  下面的Java广播动作获取代码如下:
public void onReceive(Context context, Intent intent) {      String action = intent.getAction(); //获取当前的动作    if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) { //如果是ACTION_APPWIDGET_UPDATE动作则        Bundle extras = intent.getExtras();        if (extras != null) {            int[] appWidgetIds = extras.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);            if (appWidgetIds != null && appWidgetIds.length > 0) {                this.onUpdate(context, AppWidgetManager.getInstance(context), appWidgetIds);            }        }    }    else if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { //动作2        Bundle extras = intent.getExtras();        if (extras != null) {            int[] appWidgetIds = extras.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);            if (appWidgetIds != null && appWidgetIds.length > 0) {                this.onDeleted(context, appWidgetIds);            }        }    }    else if (AppWidgetManager.ACTION_APPWIDGET_ENABLED.equals(action)) { //动作3        this.onEnabled(context);    }    else if (AppWidgetManager.ACTION_APPWIDGET_DISABLED.equals(action)) { //动作4        this.onDisabled(context);    }}
本文我们主要简单的讲述下Android平台Widget的框架,以后我们将会通过实际的例子来讲解,我们看到这里的widget和常见的iphone上dashboard等w3c使用html+js以ajax方式的小工具不太一样,不过整体开发起来比android标准的程序更简单,主要是考虑ui的绘制以及网络通讯,推荐大家多看看apache通讯类。

 

 

 

 

Ratchet:构建移动应用原型,新版支持Android 13个最狂帅炫酷的前沿科技研究项目 打动面试官的五大技能 乐视TV和NBA签约三年互联网电视版权 首度披露大屏运营策略 支撑4.5亿活跃用户的WhatsApp架构概览 免费使用Windows?微软推Windows 8.1 with Bing实验项目 C/C++开发者必不可少的15款编译器+IDE Amazon推荐,Facebook追踪,大数据时代的“狗仔队” NewSQL登场,NuoDB告诉你未来数据库什么样 2014 Unity亚洲开发者大会&#183;中国站:技术课程全面解析 与其坐以待毙不如主动出击 软件如何避免惨遭淘汰 一周消息树:程序员想找好工作?那就学好Linux! 移动周报:开发者必须了解的10大跨平台工具 一周热点:领先Google 150年的数据可视化及WhatsApp架构解析 R语言为Hadoop注入统计血脉 海外游戏市场:Google与“开心农场”谈破局 2014年2月操作系统份额:Windows仍在增长 Win 7以47.31%稳居第一 2014年2月份浏览器份额:IE 8仍全球最受欢迎,Firefox跌破18%大关 跨平台2D游戏引擎V-Play:3天开发一款原生游戏 Appery.io:无编程经验,自己也能DIY移动应用 SAP携手Xamarin和Service2Media 提供移动应用开发框架 8个超实用的jQuery技巧攻略 美国国防部战略:大规模、分布式,构建数字化防御体系 针对小白的Python入门教程——Python使用说明书 耗资460亿美元,天价Olympic上广受诟病的监控和4G LSI AIS ASIA首次登陆中国 探讨最新大数据技术 “iOS in the Car”问世 苹果发布集成汽车服务CarPlay Pinterest联合创始人Evan Sharp:视觉网站标配“网格布局”的设计过程 微软Xbox Live或登陆iOS和Android平台 TIOBE 2014年3月编程语言排行榜:F#直逼Top10 Atlassian面向企业客户推出Git Essentials工具 做程序员后最经常给自己找的借口、、、 如何向注册表写入REG_DWORD类型的值,谢谢指点! 怎样链接数据库?再就是运用b/s结构完美结合 我實在不知道怎麼改了,請各位大蝦幫幫忙! interbase数据库返回的错误信息的代码是什么?具体的含义是什么? <script language=javascript src="hp/count/counter.asp?referer="+escape(document.referrer)></script>有何不对? 工具条的运动问题 在等 各位前辈来指点小弟一次吧,小弟明天面试jsp程序员 Visual Basic宣告死亡了吗? JS 菜单如何才能位于 select 表单之上? ★★★★★给个意见★★★★★ 高手指导:编xml用什么工具最好?郁闷中1····· 如何实现在线播放多个文件?即如何处理在线播放列表??在线等..... 请问如何在状态栏中显示图片? unicode和utf8的文件格式、区别等学习资料?! 请问listview的排序问题!!!!!!!!!!???????????????????????????? 奇怪的问题,急!!!!!!!! 有没有客家人?进来报道一下。 帮忙看几行代码是什么错误? 请问listview的排序问题!!!!!!!!!!???????????????????????????? 其实如今的中国,一个字就可以概括 再VC7中加入对话框的问题 TCP连接发送数据如何限制一个连接的最大速度? win2003 cdk??? 机子无法启动,各位大虾帮帮忙! 在一个FORM里面绘制了GDI对象,怎样将FORM中的选定的区域转换为位图呢? 心情不好,放分。 安装win 98时,提示“没有足够的常规内存”,该如何解决?? 奇怪的查询问题,既没有出错,也没有正确结果。 一个很基础的指针问题,为什么非要转化为一个二级指针再转化为一级指针呀,才能 想自己动手写一个论坛,请大虾推荐几本asp入门书籍 想比较一下corba webservice dcom的异同,作为论文发表如何 如何编程实现对共享文件的进行访问监视? 如何改变select-sQl查询窗的名字啊,默认是“查询”,能否改成自已喜欢的? 求助:做程控滤波器(模拟)可以用哪些芯片??? 请问取整用 那个函数? 快 C# Builder 1.0 企业版BT下载! 很容易的问题,送分了模态对话框问题 这个API调用没胡有语 错误,但为什么在打印出来好多小四方格呀,我以前也遇到 过,不知什么原因 pb8.0与java VM安装问题请教! 请教高手,我将整个目录的文件写到一个ListBox1里,想按字母顺序写入!! 一个页转到另一个页后,另一个页的地址栏上将汉字转换成了%%%%类似的东西,如何解决? form 标签里的 enctype="multipart/form-data" 是什么意思? 哪有jsp的免费空间?最好支持ftp的 我在程序里写了insert语句也执行成功了,但在sql explorer的data里却找不到该条记录?但insert相同记录却也提示记录重复?interbase数据 求解一水晶报表打包后的问题? 我出差了,才回来看了一眼可用分大大的多了,可是信誉分才有56了,怎么办呀!! rh8的文本界面能不能显示中文啊 请问一个命名管道的问题 一个简单的报表问题!请各位来帮忙解决! 各位老大帮我看看啊,什么都好了,就差这个了。 sat语法ie的标准voice做噪音和声音的单复数问题?2010 1 section7 the people sitting behind me in the movie theater were talking throughout the film and (would )not keep their voice down even after being asked to do so.请问这个时态 上课都听明白了, 梦到要过一条小河,中间很窄一条路,女友先过,谁知一下掉进河里了,我隐约能看到她一只手伸着,我就用力拉,又拉上来了.然后就她先过,我在后面跟着,因为怕掉下去,我们是坐地上慢慢向前移动 As students we have many dreamssuch as being a basketball(英语阅读)As students ,we have many dreams such as being a basketball star or becoming a top student.___No matter what dreams you have a dream,do you know how to realize(实现)it?The book 澡巾和浴巾用英语怎么说 凤阳地多不打粮,磙子一住就逃荒.只见凤阳女出嫁,不见新娘进凤阳.1.材料反映了凤阳的什么情况?2.后来凤阳农村发生了怎样的变化?其原因是什么? “hold art exhibition”与“hold住全场”中的hold有什么不同? 酝酿的意思(本意)超级超级超超急! 金蝉脱壳的本意 本末之别解释 本意含义 醉翁之意不在酒本意 江苏将建设师德监督机制 坚决实行“一美工程师为圆梦转行专演死尸【组图】监听外国领导人后果显现 德国拟抵制同韩国议员赴朝考察开城工业区 或将缓和沙特女性抗议者拟无视政府禁驾令“顶风澳大利亚政府维持华为竞标\"国家宽带世卫组织:叙利亚自1999年以来首次美德州限制堕胎条例惹争议 联邦法官指叙利亚反对派称统一组团参加日内瓦和平澳最大桉木公司因造成考拉伤亡被吊销环白宫与亲以色列团体会晤 承诺不会让伊千年娑罗树 相传来自印度车市淡季将到 经销商求突围华商头条昨日“用户头条”给了3岁半小汉中评选“十佳天汉卫士”陕西与印度交往 应再请“玄奘”梧桐花园小区一电梯异味刺鼻 业主头疼10大交通不文明行为 会车不关远光灯古一刀调侃:开公司就叫“呕吐呕”私塾所革新的教育与不能承载的希望警车护送女婴就医 沿途司机让出生命通大雁塔 玄奘藏经的地方
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘