【问题标题】:android.os.TransactionTooLargeException in AppWidgetManager.updateAppWidgetAppWidgetManager.updateAppWidget 中的 android.os.TransactionTooLargeException
【发布时间】:2013-11-22 09:51:02
【问题描述】:

我从小部件用户那里收到关于 android.os.TransactionTooLargeException 的报告:

android.os.TransactionTooLargeException
android.os.BinderProxy.transact(Native Method)
com.android.internal.appwidget.IAppWidgetService$Stub$Proxy.updateAppWidgetIds(IAppWidgetService.java:611)
android.appwidget.AppWidgetManager.updateAppWidget(AppWidgetManager.java:378)
android.appwidget.AppWidgetManager.updateAppWidget(AppWidgetManager.java:445)
com.alonedroid.ooswitcher.animationRunnable.run(ProvidersShared.java:1804)
java.lang.Thread.run(Thread.java:841)

当我尝试在单独的线程中更新我的小部件时会发生该异常 通过AppWidgetManager.updateAppWidget(widget_id, RemoteView)。我从有关 TransactionTooLargeException 的文档中阅读,首先,我认为 - 这是因为 RemoteViews 实例的大小。所以我开始在我的 RemoteViews 实例中设置更多布局,但从未在我的设备上看到这个错误。

是否有人也遇到过这个问题,甚至可能解决了它?以及如何 重现该错误以调试应用程序?

【问题讨论】:

    标签: android exception widget


    【解决方案1】:

    查看 RemoteViews 的实现,如果在单个 RemoteViews 实例上执行太多操作,似乎会发生这种情况。

    例如,使用相同的参数调用 setTextViewText 1000 次将向 RemoteViews 添加 1000 个操作,这些操作必须跨进程传输并作为更新应用。

    确保相同的 RemoteViews 对象不会被重复用于大量操作似乎可以解决此问题。

    【讨论】:

      猜你喜欢
      • 2019-06-04
      • 1970-01-01
      • 2014-06-18
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多