zoukankan      html  css  js  c++  java
  • App Widget

      AppWidgetProviderInfo对象:

          为App Widget提供元数据(描述数据的数据,如XML、关系型数据的表结构),包括布     局,更新频率等数据。这个对象被定义在XML文件当中;

      AppWidgetProvider:

        定义了App Widget的基本生命周期函数;

                onUpdate:在到达指定的更新时间之后或者当用户向桌面添加App Widget时会调用该方法。

                onDeleted:当App Widget被删除时,会调用该方法

                onEnabled:当一个App Widget的实例第一次被创建时,会调用该方法。

                onDisabled:当最后一个App Widget实例被删除后,会调用该方法。

                onReceive:接收广播事件

       添加一个App Widget基本步骤:

                首先在res文件件下新建一个xml文件夹,在此文件夹下新建XML文件(example_appwidget_info.xml)为AppWidgetProviderInfo对象提供数据,xml文件关联了一个布        局文件(example_appwidget.xml),此布局文件就定义了在桌面上显示那些内容,如下:

          <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
            android:minWidth="234dp"
            android:minHeight="72dp"
            android:updatePeriodMillis="86000000"
            android:initialLayout="@layout/example_appwidget">
          </appwidget-provider>

        然后需要在AndroidManifest.xml中声明一个receiver,receiver如下:

          <receiver android:name="ExampleAppWidgetProvider">
            <intent-filter >
              <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            </intent-filter>
            <meta-data android:name="android.appwidget.provider"
              android:resource="@xml/example_appwidget_info"/>
          </receiver>

        example_appwidget.xml内容如下:

          <?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/textId"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="first AppWidget"
              android:background="#000000"/>
          </LinearLayout>

      声明一个ExampleAppWidgetProvider类继承自AppWidgetProvider,如下:

        public class ExampleAppWidgetProvider extends AppWidgetProvider{

          @Override
          public void onDeleted(Context context, int[] appWidgetIds) {
            // TODO Auto-generated method stub
            super.onDeleted(context, appWidgetIds);
          }

          @Override
          public void onDisabled(Context context) {
            // TODO Auto-generated method stub
            super.onDisabled(context);
          }

          @Override
          public void onEnabled(Context context) {
            // TODO Auto-generated method stub
            super.onEnabled(context);
          }

          @Override
          public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            super.onReceive(context, intent);
          }

          @Override
          public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
              // TODO Auto-generated method stub
              super.onUpdate(context, appWidgetManager, appWidgetIds);
          }

  • 相关阅读:
    [动态规划]保存子问题的结果
    [字符串]第一个不重复的字符
    [抽象建模问题]扑克牌的顺子判断
    [算法]处理连续小段问题
    [动态规划]最长回文子串
    违法
    TCP的拥塞控制
    SpringBank 开发日志 一种简单的拦截器设计实现
    SPFILEOPENBANKDB.ORA 手动编辑产生问题
    springbank 开发日志 springbank是如何执行一个handler的requestMapping对应的方法的
  • 原文地址:https://www.cnblogs.com/zhanglei93/p/4746334.html
Copyright © 2011-2022 走看看