Creating AppWidget in Android, part 1

来源:互联网 发布:c语言简明教程 编辑:程序博客网 时间:2024/04/30 05:56

      AppWidget 是能够嵌入到其他应用中的小的视图(view)或者部件(widget)。包含App Widget 的应用被称之为宿主(Host).Home Screen 就是这种宿主应用的一个例子。当你长按 home screen ,你将会得到一个可用widget的列表。我将会分两部分去讲解如何创建 App Widgets。在这部分,我主要写一些创建 widget的基础知识。在第二部分,我将会讲解如何实现一些高级应用。

      我们通过继承 AppWidgetProvider这个类来创建我们自己的 App Widget,而这个类实际上是具有android.appwidget.action.APPWIDGET_UPDATE 行为的 BroadcastReceiver。为了创建一个 App Widget 我们继承这个类,并覆写其中的 onUpdate方法。接下来,我们需要在AndroidManifest.xml这个文件中,用<receiver>标签来声明这个 App Widget.最后,我们需要在一个XML文件中,使用AppWidgetProviderInfo对象去描述它。

Creating AppWidget

为了创建一个AppWidget ,我们需要创建一个继承了AppWidgetProvider的类。AppWidgetProvider有以下的一些方法。

 

 

      onEnable 方法在一个实例第一次创建的时候调用,例如当用户第一次添加widget时。自此之后,这个方法就不会再被调用,在这个方法中,我们能够执行任何启动任务。

      onDisable方法在最后一个widget例子被删除的时候调用,这个方法是用来做一些清理工作的。

      onDeleted 是用来删除widget实例用的。

      onUpdate方法是当widget加入到Host时最先被调用的方法。在这之后,该方法会在经历制定的时间间隔之后被调用。这是App Widget 中最重要的方法。在这个方法中,我们用我们需要展示的数据去更新视图。如果数据是现成的,我们就可以直接在这个方法中将数据显示出来,如果数据需要获取,那么最好是创建一个Service 来获取数据并更新widget。这是为了避免ANR(应用不响应)错误的发生。我们可以使用AppWidgetManager的updateAppWidget()方法来更新widget。

      Declaring the App Widget

      我们需要在AndroidManifest.xml文件中,实用<receiver>标签来声明一个App Widget。正如前面所说的,AppWidgetProvider实际上是一个BroadcastReceiver。 任何能够使用这个类来做的事情,也同样能够实用BroadcastReceiver来做。下面的一段代码指定了一个GPS App Widget:

 

       除了 meta-data,所有的都与声明一个BroadcastReceiver相同,接下来,我们要在一个单独的XML文件中描述App Widget。

 

       Describing the App Widget

 App Widget描述是在一个单独的 XML文件中声明的。在这个XML文件中,我们声明了这个Widget的小的宽和高,更新周期,widget 的布局,配置屏幕的布局,等等。下面的代码描述了GPS App Widget:

 

 

原创粉丝点击