Android widget not updating - has incorrect widget ID

非 Y 不嫁゛ 提交于 2019-12-01 15:33:55

In your function updateAppWidget go to this line:

PendingIntent widgetPendingIntent = PendingIntent.getBroadcast(context, 0, widgetIntent, 0);

...and change it into:

PendingIntent widgetPendingIntent = PendingIntent.getBroadcast(context, appWidgetId, widgetIntent, 0);

For Updating Your Home Screen widget on Touch You need to Register a custom broadcast receiver in Manifest and add it as action with widget as:

Step 1: Register Custom Receiver as:

<intent-filter>
<action android:name="com.imrankhanandroid.HomeWidgetRandomNum.ACTION_WIDGET_RANDOM"/>
</intent-filter>

Step 2: In Your Widget Class AddAction to layout as:

public void onReceive(Context paramContext, Intent paramIntent)
    {
        //Intent
         String str = paramIntent.getAction();
         if (paramIntent.getAction().equals(ACTION_WIDGET_RANDOM)) {
             updateWidgetState(paramContext, str);   
         }
         else
            {
              super.onReceive(paramContext, paramIntent);
            }
    }

STEP 3: In Your updateWidgetState add new action to Intent as:

rview = new RemoteViews(paramContext.getPackageName(), R.layout.widget_layoutmain);
Intent active = new Intent(paramContext, Randomnuberwidget.class);
active.setAction(ACTION_WIDGET_RANDOM);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(paramContext, 0, active, 0);
rview.setOnClickPendingIntent(R.id.ImageView_gps, actionPendingIntent);

Finally you can Download Working HomeWidget Example from HERE HomeWidgetRendomNumber Which Generating Random Number On Every Click.

You need to set a last flag in a getBroadcast: PendingIntent.FLAG_UPDATE_CURRENT

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!