appwidget的原理
解决方案 »
- 求思路,拦截蓝牙耳机拨号功能
- android如何点击返回后服务依然在运行
- ActivityGroup中调用子Activity的finish方法退出程序的问题
- 新手求助!我想知道android程序运行的过程
- andriod service 监听按键事件
- Neither user 10075 nor current process has android.permission.ACCESS_NETWORK_STA
- 程序创建的通知栏怎么在程序关闭时退出
- View必须设置longClickable为true,否则手势识别无法正确工作//setLongClickable(true);这个函数怎么not find?
- 自定义Button,如何使drawableleft与文字居中显示?
- 关于华为手机锁屏杀服务问题,怎么解决
- android实现local search
- 想编写一个能够监测购物网站价格变化的程序,大家给一个思路吧
为了实现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中分别执行一些状态清理的操作。