更改设备语言后小部件单击不起作用
Posted
技术标签:
【中文标题】更改设备语言后小部件单击不起作用【英文标题】:Widget click not working after changing device language 【发布时间】:2015-12-17 20:44:00 【问题描述】:我有一个带有 2 个 TextView 的简单小部件,在它的 onUpdate() 中:
PendingIntent pendingIntent = IntentUtils.getClockWidgetProviderPendingIntent(context);
views.setOnClickPendingIntent(R.id.timeText, pendingIntent);
效果很好,但是当用户更改设备语言时,他们无法再单击小部件(直到重新启动设备)。
任何想法是什么问题? 谢谢。
【问题讨论】:
【参考方案1】:您是否在代码的其他地方使用了 updateAppWidget 调用?
你应该总是在每次调用updateAppWidget
之前调用setOnClickPendingIntent
,或者你可以使用public void partiallyUpdateAppWidget (int appWidgetId, RemoteViews views)
,因为
“请注意,由于这些更新未缓存,因此在使用 AppWidgetService 中的缓存版本恢复小部件的情况下,它们修改的任何未通过 restoreInstanceState 恢复的状态都不会持续存在。”
因此,每当用户旋转设备或更改语言时,小部件都会重置为在最新的 updateAppWidget 调用中保留的值。
【讨论】:
以上是关于更改设备语言后小部件单击不起作用的主要内容,如果未能解决你的问题,请参考以下文章
当孩子是芯片小部件时,Flutter MouseRegion 不起作用
通过单击整个小部件来启动活动在 Android Studio 中不起作用