Hej.
Mam widet z buttonem i moim problemem jest to że gdy mam więcej niż jedną instancję wigdetu na pulpicie i kiedy chcę kliknąć przycisk to kliknięte zostają wszystkie a zostaje mi zwrócone ID ostatniego dodanego widgetu.
Na przykład, dodaję widget, dostaje on ID 100, kiedy kliknę na jego przycik dostę dobre ID = 100. Dodaje kolejny widget na pulpit, dostaje on ID 101, kiedy kilknę na jego przycisk dostaję 101 ale kiedy kilknę na ten pierwszy to uwaga, dostaję ID =101. Dlaczego tak się dzieje?

Ponieżej próbka mojego providera

public class SampleWidetProvider extends AppWidgetProvider {
    public final static String ACTION_WIDGET_CLICK = "pl.app.bikespot.appwidget.MAIN_CLICK";
    public final static String TAG = "WIDGET";

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        Log.e(TAG, "onUpdate");

        RemoteViews remoteViews;
        ComponentName watchWidget;

        remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
        watchWidget = new ComponentName(context, SampleWidetProvider.class);

        int[] widgetIds = appWidgetManager.getAppWidgetIds(watchWidget);

        for (int id: widgetIds) {
            AppWidgetPref awp = AppWidgetPref.load(context, id);
            Log.d(TAG, "IDS" + id);

            remoteViews.setOnClickPendingIntent(R.id.asd, getPendingSelfIntent(context, ACTION_WIDGET_CLICK, id));
            appWidgetManager.updateAppWidget(watchWidget, remoteViews);
        }

    }

    protected PendingIntent getPendingSelfIntent(Context context, String action, int id) {
        Intent intent = new Intent(context, SampleWidetProvider.class);
        intent.putExtra("widgetId", id);
        intent.setAction(action);
        return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    }

    @Override
    public void onReceive(final Context context, Intent intent) {
        super.onReceive(context, intent);
        RemoteViews remoteViews;
        String action = intent.getAction();

        remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);

        if (action.equals(ACTION_WIDGET_CLICK)) {
            Bundle extras = intent.getExtras();
            int widgetId = extras.getInt("widgetId");

            Log.d("CLIK", ""+widgetId);
        }

    }

    @Override
    public void onEnabled(Context context)
    {
        Log.d(TAG, "onEnabled()");
    }

    @Override
     public void onDisabled(Context context) {
        Log.d(TAG, "onDisabled()");
    }

    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        Log.d(TAG, "onDeleted()");
        for (int appWidgetId : appWidgetIds) {
            AppWidgetPref.delete(context, appWidgetId);
        }
    }

}