Android AppWidget: новый экземпляр замораживает старый

1

Я использую следующее:

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    for (int appWidgetId : appWidgetIds) {
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);

        Intent configIntent = new Intent(context, ConfigureActivity.class);
        configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        configIntent.setAction(ACTION_UPDATE);

        PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, PendingIntent.FLAG_CANCEL_CURRENT);
        remoteViews.setOnClickPendingIntent(R.id.config_button, configPendingIntent);

        Intent smsIntent = new Intent(context, TurboSMSWidget.class);
        smsIntent.putExtra(APP_ID, appWidgetId);
        smsIntent.setAction(ACTION_SEND);

        PendingIntent smsPendingIntent = PendingIntent.getBroadcast(context, 0, smsIntent, PendingIntent.FLAG_CANCEL_CURRENT);
        remoteViews.setOnClickPendingIntent(R.id.send_button, smsPendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
    }
}

Создание виджета отлично работает, но каждый раз, когда я запускаю новый виджет, старый отключается. Я больше не могу использовать кнопки, это как заморожено на главном экране. Что не так с этим кодом?

Теги:
button
android-appwidget

1 ответ

1
Лучший ответ

Я думаю, проблема в PendingIntent. Новый экземпляр PendingIntent перезаписывает старый. Вы должны использовать уникальный Intent для инициализации PendingIntent. Вот обсуждения, которые могут вам помочь: несколько экземпляров только для виджетов Обновление последнего виджета, как я могу правильно передать уникальные дополнения в ожидающее намерения? , проблема уведомления об ожидающем намерении андроида

Ещё вопросы

Сообщество Overcoder
Наверх
Меню