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);
      }

App Widget的更多相关文章

  1. App Widget简单应用

    首先后台进程创建一个PendingIntent对象,其中PendingIntent中包含一个真正的Intent,创建完成后将此PendingIntent对象交给桌面控件所在的进程,当用户点击桌面控件或 ...

  2. 一个App Widget实例第一次创建时被调用

    事实上已经有很多的所谓的路由框架做到这一点,我也没有去研究别的,加上一直对backbone这个框架的评价不错,所以就琢磨着怎么用它实现我所需要的SPA的url管理了. 比如,你可能会说"如果 ...

  3. APP Widget的开发

    Android中经常用到APP Widget,如时钟,天气预报等. 长按屏幕,在弹出的对话框中选择“窗口小部件”,然后就列出了可选择的小部件,这些小部件就是APP Widget. 本文开发一个APP ...

  4. Android 之窗口小部件详解--App Widget

    Android 之窗口小部件详解--App Widget  版本号 说明 作者 日期  1.0  添加App Widge介绍和示例  Sky Wang 2013/06/27        1 App ...

  5. Android开发之创建App Widget和更新Widget内容

    App WidgetsApp Widgets are miniature application views that can be embedded in other applications (s ...

  6. android app widget 创建调用周期

    1 ?Android widget 大小问题 2 ?RemoteViewService Android开发历程_15(AppWidget的使用) Appwidget就是手机应用中常常放在桌面(即hom ...

  7. [安卓开发]App Widget开发入门指导

    本节所要讲的主要内容包括Android桌面小部件.App Widget的开发入门指导,并通过一个简单实例的形式来直观的讲解App Widget. 一.Widget .App Widget .Web A ...

  8. Android App Widget的简单使用

    App Widget是一些桌面的小插件,比如说天气和某些音乐播放应用,放到桌面去的那部分: 例如: 实现步骤及代码如下: (1)首先,在AndroidManifest.xml中声明一个App Widg ...

  9. Android 之窗口小部件高级篇--App Widget 之 RemoteViews - 跨到对岸去

    在之前的一篇博文( Android 之窗口小部件详解--App Widge t)中,已经介绍了App Widget的基本用法和简单实例.这篇主要讲解 App Widget 的高级内容,即通过 Remo ...

随机推荐

  1. 安装wampserver遇到,无法启动此程序,丢失MSVCR110.dll

    这个问题遇到多次了,根据网上的解决办法,下载这个动态链接库文件,安装到指定位置重启系统后还是解决不了,其实这个文件有时候是存在的也会出现这个问题.问题截图如下 其实这个我认为是系统缺少了相关组组件的安 ...

  2. bzoj1510: [POI2006]Kra-The Disks(单调栈)

    这道题可以O(n)解决,用二分还更慢一点 维护一个单调栈,模拟掉盘子的过程就行了 #include<stdio.h> #include<string.h> #include&l ...

  3. 导入导出Excel工具类ExcelUtil

    前言 前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibe ...

  4. The Solution of UESTC 2016 Summer Training #1 Div.2 Problem A

    Link http://acm.hust.edu.cn/vjudge/contest/121539#problem/A Description standard input/output Haneen ...

  5. 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

    package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...

  6. SQL Server恢复软件SysTools SQL Recovery/SysTools SQL Server Recovery Manager

    SQL Server恢复软件SysTools SQL Recovery/SysTools SQL Server Recovery Manager http://www.systoolsgroup.co ...

  7. Spring Rabbitmq HelloWorld实例

    之前的博客和大家分享了Rabbitmq的基本框架,及其工作原理,网址为 < http://www.cnblogs.com/jun-ma/p/4840869.html >.今天呢,想和大家一 ...

  8. 新功能发布!Markdown写博客!

    有一种神奇的语言,它比html还简单,它巧妙地将内容与格式整合在一起--它就是Markdown. 现在我们实现了博客对Markdown的内置支持,可以让您轻松地在园子里用这个神奇的语言写博客! &qu ...

  9. 【Java并发编程实战】-----“J.U.C”:ReentrantLock之三unlock方法分析

    前篇博客LZ已经分析了ReentrantLock的lock()实现过程,我们了解到lock实现机制有公平锁和非公平锁,两者的主要区别在于公平锁要按照CLH队列等待获取锁,而非公平锁无视CLH队列直接获 ...

  10. 干掉Unity3D

    我为什么想干掉Unity3D? 这个问题容我不答,每个做技术的人总有一些完美主义. 你使用u3d的过程中是不是痛并快乐着呢. 就从两个国内具有相当普遍性的痛点说起. il2cpp,unity作出了这个 ...