簡體   English   中英

AppWidgetManager.updateAppWidget中的android.os.TransactionTooLargeException

[英]android.os.TransactionTooLargeException in AppWidgetManager.updateAppWidget

我從我的小部件用戶收到有關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實例中設置更多布局,但從未在我的設備上看到此錯誤。

有人也遇到過這個問題,甚至可能解決了嗎? 以及如何重現該錯誤以調試應用程序?

查看RemoteViews的實現,如果在單個RemoteViews實例上執行了太多操作,則可能會發生這種情況。

例如,使用相同參數調用setTextViewText 1000次將向RemoteView添加1000個操作,這些操作必須跨進程傳輸並作為更新應用。

確保相同的RemoteViews對象不會被用於瘋狂的操作量似乎解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM