Обновить виджет по нажатию кнопки

Я хочу сделать так, чтобы виджет можно было обновить по нажатию кнопки. Я нашел следующий код, но он работает до 11 версии андроида, а на 12+ версии этот код ломает приложение и в него невозможно зайти после добавления виджета на экран. В чем может быть проблема и как реализовать это так, чтобы работало на всех версиях андроида?


// onReceive function to process clicks
override fun onReceive(context: Context, intent: Intent) {
        super.onReceive(context, intent)

        if (intent.action == AppWidgetManager.ACTION_APPWIDGET_UPDATE) {
            val appWidgetManager = AppWidgetManager.getInstance(context)
            val appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS)

            if (appWidgetIds != null) {
                for (appWidgetId in appWidgetIds) {
                    updateAppWidget(context, appWidgetManager, appWidgetId)
                }
            }
        }
}

// add PendingIntent
val updateWidgetIntent = Intent(context, NextLectureWidget::class.java)
updateWidgetIntent.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
updateWidgetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, intArrayOf(appWidgetId))
val updateWidgetPendingIntent = PendingIntent.getBroadcast(
                context, 0, updateWidgetIntent,
                PendingIntent.FLAG_UPDATE_CURRENT
            )
remoteViews.setOnClickPendingIntent(R.id.updateButton, updateWidgetPendingIntent)


Ответы (0 шт):