widget主要功能就是显示一些信息。我今天编写一个很简单的作为widget,显示时间、日期、星期几等信息。需要显示时间信息,那就需要实时更新,实时更新就需要定时任务,1秒钟更新一次。
这个时间Widget我是参考(Android应用开发揭秘)书里面的一个demo例子做的,效果如下图:
1.AppWidget框架
AppWidget框架主要包括以下类:
- AppWidgetProvider:继承自BroadcastReceiver,在AppWidget应用update、enable、disable和deleted时接收通知。其中,onUpdate、onReceive是最常用到的方法,他们接收更新通知。
- AppWidgetProviderInfo:描述Appwidget的大小,更新频率和初始界面等信息,已XML文件存在于应用的res/xml/目录下。
- AppWidgetManager:负责管理AppWidget,向AppWidgetProvider发送通知。
- RemoteViews:一个可以再其他应用进程中运行的类,是构造AppWidget的核心。
2.Widget开发流程
- appWidget配置
代码清单:widget.xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialKeyguardLayout="@layout/date_layout"
android:initialLayout="@layout/date_layout"
android:minHeight="72dp"