我正在使用仿真器使用调试器,我注意到onUpdate没有被调用.当我将窗口小部件添加到模拟器主屏幕时,我看到我的断点被onReceive方法击中. onReceive方法确实获取了
android.appwidget.action.APPWIDGET_UPDATE的意图.但是,onUpdate函数从不被调用.我相信它的定义是正确的.
@Override public void onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIds) { // code that sets up remove view and updates appWidgetManager }
解决方法
调用onReceive()中的超类方法
@Override public void onReceive(Context context,Intent intent) { // Chain up to the super class so the onEnabled,etc callbacks get dispatched super.onReceive(context,intent); // Handle a different Intent Log.d(TAG,"onReceive()" + intent.getAction()); }
如果您覆盖了您的子类AppWidgetProvider中的onReceive(),则除非您调用超类,否则不会触发提供程序的onEnabled,onUpdate等回调.