El widget de Android no se actualiza - tiene un ID de widget incorrecto

He estado trabajando en un widget y haciendo algunos avances (espero) pero todavía no puedo hacer que haga lo que quiero.

Tengo una actividad de configurador que funciona bien. Cuando se cierra, llamo al método updateAppWidget en la clase WordWidget y el widget actualiza el número aleatorio.

Lo que no puedo hacer es obtener el número aleatorio para cambiar debido a onClick. De acuerdo con el registro, introduzco el método onReceive (), pero eso es todo.

En el registro estoy imprimiendo el ID del widget. Noté que cuando se ejecuta desde la actividad del configurador se está imprimiendo appWidgetId = 33, pero cuando presiono el widget se imprime appWidgetId = 24.

Este es el código:

public class WordWidget extends AppWidgetProvider
{

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
    {
        //This is run when a new widget is added or when the update period expires.
        Log.v("wotd",  "In onUpdate(), updating " + appWidgetIds.length + " widgets");
        Log.v("wotd",  "   the array is " + appWidgetIds.toString());

        for(int x = 0; x < appWidgetIds.length; x++)
        {
            Integer appWidgetId = appWidgetIds[x];


            //Method that updates the random value
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }
    }

    @Override
    public void onReceive(Context context, Intent intent)
    {
        super.onReceive(context, intent);
        Log.v("wotd", "In onReceive() with intent=" + intent.toString());
        if (intent.getAction().equals("android.appwidget.action.APPWIDGET_UPDATE"))
        {
            Integer mAppWidgetId;
            AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);

            Bundle extras = intent.getExtras();
            if(extras != null)
            {
                Log.v("wotd", "In onReceive(), extras is valid");
                mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);

                //If they gave us an intent without a valid widget Id, just bail.
                if (mAppWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID)
                {
                    Log.v("wotd", "In onReceive(), mAppWidgetId is ok");
                    updateAppWidget(context, appWidgetManager, mAppWidgetId);
                }
            } else
            {
                Log.v("wotd", "In onReceive(), extras is INVALID");
                mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
            }
        }


    }


    static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, Integer appWidgetId)
    {
        Log.v("wotd", "In updateAppWidget() with appWidgetId=" + appWidgetId);

        //Setup onClick
        Intent widgetIntent = new Intent(context, WordWidget.class);
        widgetIntent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
        widgetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        PendingIntent widgetPendingIntent = PendingIntent.getBroadcast(context, 0, widgetIntent, 0);

        Integer nextNumb = new Random().nextInt(100);
        Log.v("wotd", "In updateAppWidget(), nextNumb = " + nextNumb.toString());

        RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
        remoteView.setTextViewText(R.id.mainText, String.valueOf(nextNumb));
        remoteView.setOnClickPendingIntent(R.id.mainText, widgetPendingIntent);

        // Tell the widget manager
        appWidgetManager.updateAppWidget(appWidgetId, remoteView);
    }
}

Este es el archivo de registro, desde que toco el widget (tenga en cuenta que la actividad de preferencias también tiene una impresión del registro y muestra el ID del widget como un número diferente al de este):

05-14 17:15:47.453: V/wotd(1585): In onReceive() with intent=Intent { act=android.appwidget.action.APPWIDGET_UPDATE flg=0x10000000 cmp=com.rfxlabs.wordofthedaywidget/.WordWidget bnds=[202,177][222,201] (has extras) }
05-14 17:15:47.453: V/wotd(1585): In onReceive(), extras is valid
05-14 17:15:47.463: V/wotd(1585): In onReceive(), mAppWidgetId is ok
05-14 17:15:47.463: V/wotd(1585): In updateAppWidget() with appWidgetId=24

05-14 17: 15: 47.463: V / wotd (1585): En updateAppWidget (), nextNumb = 42

Como puede ver, en realidad estoy ingresando mi método updateAppWidget, pero por alguna razón el appWidgetId es incorrecto.

¿Alguna idea de por qué esto está sucediendo? ¡Muchas gracias!