2

基本上,过了一会儿,我的小部件开始导致启动器结结巴巴。在进行了一些分析、记录、注释和只是很好的旧视觉检查之后,我已经缩小了问题区域以更新小部件文本。这是我用来执行此操作的方法:

public static void setText(Context context, String text) {
  if (appWidgetManager == null)
    appWidgetManager = AppWidgetManager.getInstance(context);
  RemoteViews remoteViews = Widget.getView(context);
  ComponentName thisWidget = new ComponentName(context, Widget.class);
  remoteViews.setTextViewText(R.id.PrimaryWidgetButton, text);
  appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}

奇怪的是,它需要几分钟才能开始导致延迟,好像这段代码有某种挥之不去的副作用。即使仍在调用此代码,删除小部件也会停止口吃。重新添加小部件会立即恢复口吃。

注意:只有在更改文本时才会出现口吃。因此,在更改文本后,启动器很好,但在调整过程中它会卡顿。

什么可能导致这种口吃?有没有更好的方法来更新小部件上的文本?

4

0 回答 0