【问题标题】: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);
效果很好,但是当用户更改设备语言时,他们无法再单击小部件(直到重新启动设备)。
任何想法是什么问题?
谢谢。
【问题讨论】:
标签:
android
android-intent
android-widget
【解决方案1】:
您是否在代码的其他地方使用了 updateAppWidget 调用?
你应该总是在每次调用updateAppWidget 之前调用setOnClickPendingIntent,或者你可以使用public void partiallyUpdateAppWidget (int appWidgetId, RemoteViews views),因为
“请注意,由于这些更新未缓存,因此在使用 AppWidgetService 中的缓存版本恢复小部件的情况下,它们修改的任何未通过 restoreInstanceState 恢复的状态都不会持续存在。”
因此,每当用户旋转设备或更改语言时,小部件都会重置为在最新的 updateAppWidget 调用中保留的值。