appwidget的原理

解决方案 »

  1.   

    AppWidget组件
    为了实现AppWidget的技术框架,Android在framework层添加了7个AppWidget组件,来完成AppWidget的接口封装和数据传递和保存,每个组件的基本功能介绍如下:
    AppWidgetProvider:
    AppWidgetProvider继承自BroadcastReceiver,是对AppWidget应用进行数据管理的直接模块,在AppWidget应用update, enable, disable和deleted的四个阶段中,AppWidgetProvider的onUpdate,onDelete,onEnable,onDisable方法会分别被回调。
    当AppWidget在被创建,或者系统启动时, onUpdate会被回调一次。
    当这个AppWidgetProvider对应的AppWidget第一次创建时, onEnable方法会被回调,当系统重启时, onEnable也会被回调一次,表示当前这个AppWidgetProvider有对应的AppWidget在运行。谨记onEnable会在onUpdate之前被回调。
    当一个AppWidget从一个Host中被删除时,这个Widget对应的AppWidgetProvider的onDelete方法会被回调。
    当AppWidgetProvider对应的所有的AppWidget被删除时,它的onDisable方法会被回调。
    开发者根据需要可以在这四个生命周期的函数中执行需要的操作。一般在onEnable函数中执行一个总体的初始化操作,最好把影响所有的Widget的初始化操作放在onEnable中完成。对于某一个Widget需要的更新可以放在onUpdate中执行,一般在这个操作中开发者需要把一个新的RemoteViews提交到AppWidgetService中去。在delete和disable中分别执行一些状态清理的操作。