【问题标题】:Android application widget has strange view glitch while updatingAndroid 应用程序小部件在更新时出现奇怪的视图故障
【发布时间】:2016-03-24 21:15:10
【问题描述】:

我正在开发小型应用程序小部件,但在更新远程视图时遇到了一些问题。当通过系统调用更新小部件时一切正常,但是当我尝试通过此代码从我的服务更新小部件时:

AppWidgetManager widgetManager = AppWidgetManager.getInstance(this);
ComponentName widgetComponent = new ComponentName(this, NBRBAppWidget.class);
int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
Intent update = new Intent();
update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
sendBroadcast(update);

我的小部件视图出现故障。故障示例在下面的视频中

Video of RemoteView glitches

我检查了更新视图方法需要 7-20 毫秒

如果有人推测为什么会发生这种情况,请告诉我。

【问题讨论】:

    标签: android android-appwidget appwidgetprovider


    【解决方案1】:

    为了避免小部件出现故障,我只是删除了 ACTION_APPWIDGET_UPDATE 广播的发送并调用 RemoteView 而不是它,如下所示:

    AppWidgetManager widgetManager = AppWidgetManager.getInstance(this);
    ComponentName widgetComponent = new ComponentName(this, NBRBAppWidget.class);
    int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
    for (int i = 0; i < widgetIds.length; i++) {
        NBRBAppWidget.updateWidget(this, widgetManager, widgetIds[i]);
    }
    

    NBRBAppWidget.updateWidget 是调用远程视图的方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 2013-09-20
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多