1、分四个步骤:
绘制时钟布局 --> 配置Widget属性 --> 定义AppWidgetProvider --> 提供TimerService
其中AppWidgetProvider的使用类似广播接受者,在清单中的配置如下:
<receiver android:name="com.example.widgettest.WidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widgetconfig" />
</receiver>
另外,核心代码:
// 获取系统时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(new Date());
// 更新Widget显示,需要RemoteViews和AppWidgetManager
RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.widget);
remoteView.setTextViewText(R.id.tv_widget, time);
AppWidgetManager manager = AppWidgetManager.getInstance(getApplicationContext());
ComponentName name = new ComponentName(getApplicationContext(), WidgetProvider.class);
manager.updateAppWidget(name, remoteView);
实现效果如下