Update nur mit der aktuellen Android-widget-ID in der update-Methode

Mache ich ein widget in android erzeugt eine Zufallszahl, die, wenn geklickt wird. Wenn das widget allein auf dem home-Bildschirm funktioniert es tadellos, aber wenn Sie fügen Sie mehrere von Ihnen, die Sie starten zum generieren von Zufallszahlen in der gleichen Zeit. Was passiert ist, als ein individuelles widget geklickt wird, aktualisiert Sie alle von Ihnen; was in vielen Zufallszahlen. Was ich will, ist jedes widget isoliert von den anderen; im Grunde, wenn Sie ein widget angeklickt wird es nur aktualisiert sich selbst und nicht die anderen um ihn herum. Ich denke, dies ist erreichbar, indem man die ID des aktuellen widgets und update, dass man nur als adaptiert an die update-Methode aktualisiert alle widgets; wie mache ich das?

Mein code

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {

    //Get all ids
    ComponentName thisWidget = new ComponentName(context,
            MyWidgetProvider.class);
    int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
    for (int widgetId : allWidgetIds) {
        //Create some random data
        int number = (new Random().nextInt(100));

        RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
                R.layout.widget_layout);
        Log.w("WidgetExample", String.valueOf(number));
        //Set the text
        remoteViews.setTextViewText(R.id.update, String.valueOf(number));

        //Register an onClickListener
        Intent intent = new Intent(context, MyWidgetProvider.class);

        intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);

        PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
                0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent);
        appWidgetManager.updateAppWidget(widgetId, remoteViews);
    }
}

Zusammenfassung:

In diesem code wird die update-Methode und wird aufgerufen, wenn ein widget angeklickt wird. Ich will diese Methode, um nur aktualisieren Sie die widget-ID, die genannt, nicht für diese Methode aktualisiert alle widgets-ID auf dem home-Bildschirm.

Schreibe einen Kommentar