我无法获得onReceive()中点击的小部件的ID。总是返回0.这是我的代码:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(WIDGET_BUTTON)) {
int widgetId = intent.getIntExtra( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
log("WID ID" + widgetId);
我从Android开发者文档中获取代码,我不知道它为什么不起作用..
回答:
我想念:
AppWidgetManager mgr = AppWidgetManager.getInstance(context);
所以我的代码是这样的:
@Override
public void onReceive(Context context, Intent intent) {
AppWidgetManager mgr = AppWidgetManager.getInstance(context);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_main);
if (intent.getAction().equals(WIDGET_BUTTON)) {
Bundle extras = intent.getExtras();
int widgetId = 0;
if (extras != null && extras.containsKey(AppWidgetManager.EXTRA_APPWIDGET_ID))
widgetId = intent.getIntExtra(mgr.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
log("1 - WID ID" + widgetId);
答案 0 :(得分:0)
doc表示INVALID_APPWIDGET_ID == 0,因此您正在接收没有额外EXTRA_APPWIDGET_ID的Intents。
您在创建意图时是否添加了额外内容?