Обновить виджет по нажатию кнопки
Я хочу сделать так, чтобы виджет можно было обновить по нажатию кнопки. Я нашел следующий код, но он работает до 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)