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方法中调用此方法,则多态架构更加完美。

posted @ 2017-03-03 22:27  爱吃胡罗卜  阅读(438)  评论(0编辑  收藏  举报