AndroidWidget基本用法

来源:互联网 发布:啪啪软件下载 编辑:程序博客网 时间:2024/05/18 16:14
1.为widget创建一个布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
2.创建xml文件夹,配置appwidget-provider
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minHeight="100dp"
    android:minWidth="100dp"
    android:updatePeriodMillis="50000" >

</appwidget-provider>

3.创建Widget的广播,继承自AppWidgetProvider:
onEnabled:    第一个widget添加到屏幕上执行(启动服务)
onDisabled:    最后一个widget从屏幕移除(停止服务)
onDeleted:    widget从屏幕移除
onUpdate:    刷新widget(通过RemoteViewsAppWidgetManager进行更新操作)
广播的配置:
        <receiver android:name="com.tomorrow_p.widget_p.WidgetProvider" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_config" />
        </receiver>
在服务中操作widget...
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd   hh:mm:ss");
        String date = format.format(new Date());
        RemoteViews rv = new RemoteViews(getPackageName(), R.layout.widget);
        rv.setTextViewText(R.id.tv_date, date);
        AppWidgetManager instance = AppWidgetManager
                .getInstance(getApplicationContext());
        ComponentName provider = new ComponentName(getApplicationContext(),
                WidgetProvider.class);
        instance.updateAppWidget(provider, rv);

1 0
原创粉丝点击