android appWidgetProvider 接收到android.appwidget.action.APPWIDGET_UPDATE后没有执行onUpd
android appWidgetProvider 接收到android.appwidget.action.APPWIDGET_UPDATE后为什么没有执行onUpdate方法啊 来个大牛帮我解答啊 感激不尽 --------------------编程问答-------------------- 贴上代码:监听器:button.setOnClickListener(mBtnClick);
}
OnClickListener mBtnClick = new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
Edit.this.sendBroadcast(intent);
finish();
}
};
注册receiver:
<receiver android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="WidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_provider" />
</receiver>
复写的onreceive和onupdate
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println("onreceive");
super.onReceive(context, intent);
}
@Override
public void onUpdate(Context ctxt, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
System.out.println("onupdate");
super.onUpdate(ctxt, appWidgetManager, appWidgetIds);
}
能打印出onreceive但是不能打印onupdate,这是为什么啊 --------------------编程问答-------------------- 没有人吗 --------------------编程问答-------------------- csdn都是一群SX吗 真是想骂娘啊 --------------------编程问答-------------------- AppWidgetProvider已经实现了onReceive,那里边调用onUpdate。onReceive,你已经复写了,当然不可能再调onUpdate。
好好看看源码。 --------------------编程问答-------------------- 你没有发送AppWidgetManager.EXTRA_APPWIDGET_IDS。
源码如下。
if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null) {
int[] appWidgetIds = extras.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);
if (appWidgetIds != null && appWidgetIds.length > 0) {
this.onUpdate(context, AppWidgetManager.getInstance(context), appWidgetIds);
}
}
}
补充:移动开发 , Android