【问题标题】: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 调用中保留的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      相关资源
      最近更新 更多