TransactionTooLargeException при вызове updateAppWidget в RemoteViews (только для Android 7.0 и 6.0) - PullRequest
1 голос
/ 07 июня 2019

У меня есть много отчетов о сбоях TransactionTooLargeException в консоли (интересно - почти исключительно из более старых версий Android 7.0 и 6.0 - почти ничего из более новых Android).

Это всегда происходит в этой строке кода в моем JobIntentService:

@Override
protected void onHandleWork(Intent intent) {
   ...
   appWidgetManager.updateAppWidget(id, updateViews);//this line
}

Почему это происходит и как этого избежать? У кого-нибудь есть опыт? Аварийный журнал здесь:

Caused by: android.os.TransactionTooLargeException:      
  at android.os.BinderProxy.transactNative (BinderProxy.java)     
  at android.os.BinderProxy.transact (BinderProxy.java:503)     
  at com.android.internal.appwidget.IAppWidgetService$Stub$Proxy.updateAppWidgetIds (IAppWidgetService.java:636)
  at android.appwidget.AppWidgetManager.updateAppWidget (AppWidgetManager.java:474)
  at android.appwidget.AppWidgetManager.updateAppWidget (AppWidgetManager.java:550)
  at my.package.myapp.services.MyJobIntentService.onHandleWork (MyJobIntentService.java:99)
  at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground (JobIntentService.java:392)
  at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground (JobIntentService.java:383)
  at android.os.AsyncTask$2.call (AsyncTask.java:295)
  at java.util.concurrent.FutureTask.run (FutureTask.java:237)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:588)
  at java.lang.Thread.run (Thread.java:818)
...