adnroid.appwidget.AppWidgetProvider
AppWidgetProvider类:继承BroadcastReceiver,主要是方便桌面小控件的实现,其中在onReceiver中提供了接受系统系统广播的回调;
类结构如下:
onReceive函数中的回调
1)action=AppWidgetManager.ACTION_APPWIDGET_UPDATE,更新小部件内容,调用onUpdate方法处理
2)action=AppWidgetManager.ACTION_APPWIDGET_DELETED,小部件被删除,调用onDelete方法处理
3)action=AppWidgetManager.ACTION_APPWIDGET_OPTIONS_CHANGED,小部件布局大小等改变,调用onAppWidgetOptionsChanged方法处理
4)action=AppWidgetManager.ACTION_APPWIDGET_ENABLED,某种小部件第一次被添加,调用onEnabled
5)action=AppWidgetManager.ACTION_APPWIDGET_DISABLED,某种小部件最后一个被删除,调用onDisabled
6)action=AppWidgetManager.ACTION_APPWIDGET_RESTORED,当小部件状态发生变化时,从备份中恢复,onRestored->onUpdate
要点:
1)除了onReceive方法,其它方法均为空实现,onReceive中方法,方便了系统广播的调用过程
2)继承AppWidgetProvider类,重写父类方法,在onReceive方法中要有对父类onReceive方法的调用,才可以对系统广播调用相应方法处理
个人意见:
没有完全利用多态性,进行回调自动处理,需要手动调用super.onReceive方法;若能够在此类中增加抽象方法,并且在onReceive方法中调用此方法,则多态架构更加完美。