失败的BINDER TRANSACTION Widget主持人死亡:

时间:2015-03-13 12:34:25

标签: android transactions widget

android应用程序开发。 我每秒在服务中调用mAppWidgetProvider.updateUI(RecorderService.this)。 mAppWidgetProvider.updateUI(RecorderService.this)将更新Widget UI, 但是,如果运行30分钟后,Widget UI无法更新,而Widget可以点击。

我抓住了日志:

D/SoftOMXComponent(  262): FTB timestamp 1418264000
E/JavaBinder(  762): !!! FAILED BINDER TRANSACTION !!!
E/AppWidgetServiceImpl(  762): Widget host dead: HostId{user:0, app:10007, hostId:1024, pkg:com.android.launcher3}
E/AppWidgetServiceImpl(  762): android.os.TransactionTooLargeException
E/AppWidgetServiceImpl(  762):  at android.os.BinderProxy.transactNative(Native Method)
E/AppWidgetServiceImpl(  762):  at android.os.BinderProxy.transact(Binder.java:504)
E/AppWidgetServiceImpl(  762):  at com.android.internal.appwidget.IAppWidgetHost$Stub$Proxy.updateAppWidget(IAppWidgetHost.java:123)
E/AppWidgetServiceImpl(  762):  at com.android.server.appwidget.AppWidgetServiceImpl.handleNotifyUpdateAppWidget(AppWidgetServiceImpl.java:1664)
E/AppWidgetServiceImpl(  762):  at com.android.server.appwidget.AppWidgetServiceImpl.access$1200(AppWidgetServiceImpl.java:107)
E/AppWidgetServiceImpl(  762):  at com.android.server.appwidget.AppWidgetServiceImpl$CallbackHandler.handleMessage(AppWidgetServiceImpl.java:3011)
E/AppWidgetServiceImpl(  762):  at android.os.Handler.dispatchMessage(Handler.java:111)
E/AppWidgetServiceImpl(  762):  at android.os.Looper.loop(Looper.java:194)
E/AppWidgetServiceImpl(  762):  at com.android.server.SystemServer.run(SystemServer.java:343)
E/AppWidgetServiceImpl(  762):  at com.android.server.SystemServer.main(SystemServer.java:224)
E/AppWidgetServiceImpl(  762):  at java.lang.reflect.Method.invoke(Native Method)
E/AppWidgetServiceImpl(  762):  at java.lang.reflect.Method.invoke(Method.java:372)
E/AppWidgetServiceImpl(  762):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955)
E/AppWidgetServiceImpl(  762):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
D/OMXCodec(  262): [OMX.MTK.AUDIO.DECODER.MP3] Calling fillBuffer on buffer 0xf2aa4a60
D/OMXCodec(  262): [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2aa45e0 (length 2090), timestamp 3843395918 us (3843.40 secs)
D/AudioALSACaptureDataProviderNormal(  262): readThread, latency_in_us,0.000024,0.058123,0.000982
D/AudioALSACaptureDataProviderNormal(  262): readThread, latency_in_us,0.000295,0.000093,0.001114
D/AudioFlinger_Threads(  262): need 15367 frames in to produce 2561 out given in/out ratio of 6
D/AudioFlinger_Threads(  262): not enough to resample: have 1030 frames in but need 15367 in to produce 2561 out given in/out ratio of 6
D/AudioFlinger_Threads(  262): now need 1027 frames in to produce 171 out given out/in ratio of 0.1667
D/AudioFlinger_Threads(  262): success 2: have 1030 frames in and need 1027 in to produce 171 out given in/out ratio of 6
D/AudioFlinger_Threads(  262): need 14341 frames in to produce 2390 out given in/out ratio of 6
D/AudioFlinger_Threads(  262): not enough to resample: have 4 frames in but need 14341 in to produce 2390 out given in/out ratio of 6
D/AudioALSACaptureDataProviderNormal(  262): readThread, latency_in_us,0.000230,0.000090,0.002936
D/ACodec  (  262): [OMX.google.amrnb.encoder] onInputBufferFilled ID 0xf1d2d0a0 w/ time 1418303875 eos 0 mode 1 err 0
D/SoftOMXComponent(  262): ETB timestamp 1418303875
D/SoftOMXComponent(  262): FBD timestamp 1418284000
D/AudioFlinger_Threads(  262): need 14341 frames in to produce 2390 out given in/out ratio of 6
D/SoftOMXComponent(  262): FBD timestamp 1418304000

我的问题:

  1. 为什么会这样?
  2. 更新窗口小部件用户界面的最佳方法是什么?

0 个答案:

没有答案