Android中widget的应用【安卓源码解析三】

最近看widget,这个widget可以任意放到桌面上(前提是你的桌面上有足够大的空间),感觉效果很炫,widget就是一个BroadcastReceiver,它们使用XML metedata来描述widget的细节。AppWidget framework通过Broadcast intents和Widget通信,widget的更新使用RemoteViews来发送。Remote Views被包装成一个layout和特定内容来显示到桌面上。widget是继承于AppWidgetProvider类的,重写几个方法,有:onEnabled():程序第一次启动的时候调用。onUpdate():程序更新的时候用,由android:updatePeriodMillis=“1000"这个来控制的。onDeleted():widget被删除时候调用。onDisabled()这个方法。还得写这个appwidget-provider布局文件。这个widget在manifest中需要注册一下receiver

在<appwidget-provider>中添加属性android:configure="com.cn.exmaple.widget.daming.ExampleAppWidgetConfigure",指向对应的配置类。这个类可以是继承activity的类。这个程序是我修改的apidemo中的代码。感觉这个例子写的还行,就整理下,方便自己用。下面看程序截图:

长按桌面,弹出dialog,选择窗口小部件: 点击大明修改api后弹出的界面:

Android中widget的应用【安卓源码解析三】Android中widget的应用【安卓源码解析三】

输入文字: 点击确定后,显示在桌面:

Android中widget的应用【安卓源码解析三】Android中widget的应用【安卓源码解析三】

源码奉上:

在ExmapleWidgetApp工程下:

一、在com.cn.exmaple.widget.daming包下面的ExampleAppWidgetProvider.java类中的代码:

二、在ExampleAppWidgetConfigure.java中的代码:

三、在ExampleBroadcastReceiver.java中的代码:

四、在xml下的appwidget-provider的布局文件中:

五、在layout下的appwidget_provider.xml中的代码:

六、在layout下的appwidget_configure.xml中的代码:

七、AndroidManifest.xml中的代码:

八、在values下的string.xml中的代码:


你可能感兴趣的:(android)