0

我正在编写一个启动器活动来托管 appwidgets。基本上这就是我正在做的事情。

  1. 我的所有 appwidgets 的容器视图是一些自定义的 ViewGroup。
  2. 添加小部件时,我会首先为要添加的小部件调用配置活动。
  3. 我在主 activity.onStart() 中调用 AppWidgetHost.startListening() 并在 onStop() 中调用 stopListening()
  4. 添加小部件时,这是我所做的 application.getAppWidgetManager().bindAppWidgetIdIfAllowed(appWidgetId, componentName); AppWidgetHostView hostView = application.getAppWidgetHost().createView(context, appWidgetId, appWidgetInfo); hostView.setAppWidget(widgetId, appWidgetInfo); myViewGroup.addView(hostView);
  5. 我没有在日志中看到 RemoteException 并且积极地调用 AppWidgetHost.startListening() 并没有帮助。

此外,并非所有小部件都无法更新,例如股票时钟小部件可以正常工作。这尤其发生在 Minimalistic Text Widget 和其他一些小部件上。添加小部件后,它可以在停止工作之前更新 1~2 分钟。另一个相关的观察是,当我点击 Minimalistic 小部件时,修改布局并保存。新布局不会应用于现有小部件。这让我觉得我的代码中有一些错误,但我不知道在哪里。

提前感谢您的帮助!

抱歉,我无法在此处粘贴详细代码,因为它们分散在各处。但如果您需要,我可以提供任何详细信息。再次感谢!

4

1 回答 1

1

没关系。我最终想通了。原因是我在创建 AppWidgetManager 和 AppWidgetHost 时使用的是应用程序上下文而不是活动上下文。

于 2013-08-18T03:55:15.723 回答