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:
- Creating AppWidget in Android, part 1
- Creating Custom Classes in LotusScript, part 1
- SQLite in Android part 1
- Creating an OS Web Interface in jQuery (Part I)
- SCSF - Part 8 Creating and Using Services in the CAB
- Part 82 - Creating custom validation attribute in asp.net mvc
- MFC Tutorial Part 1 - Creating a Window
- android AppWidget
- android appwidget
- Android AppWidget
- Android-AppWidget
- Android AppWidget
- Android: creating two columns in a linearlayout
- Creating custom and compound views in Android
- Android基础教程之---AppWidget讲解1
- android示例之AppWidget(1)
- Android桌面小部件AppWidget(1)
- Wrangling Dalvik: Memory Management in Android (Part 1 of 2)
- selinux 常用指令
- 敏捷之道——提高命令行编辑速度
- p2p.download.Downloader
- 第一部分:基础知识(第一章)颜色主题
- 老人与死神
- Creating AppWidget in Android, part 1
- 单元测试mock:用JMockit写单元测试实例
- static
- jquery插件jquery.autocomplete.js的中文化、json化改造
- 医生与病人
- relief
- 第一部分:基础知识(第一章)XAP 就是 ZIP
- 解决.net中access数据库连接相对路径问题
- 鸟、兽和蝙蝠