最近遇到一个bug,setting里将display设置为never sleep之后返回home界面,系统会不断刷新,看了一下log发现下面一段有问题
09-20 03:41:42.013 5974 5974 D PowerSaverUpdateIcon: send broadcast to update animated icon
09-20 03:41:42.013 5974 5974 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:772 android.content.ContextWrapper.sendBroadcast:396 com.asus.powersaver.animatedicon.PowerSaverUpdateIcon.c:-1 com.asus.powersaver.animatedicon.PowerSaverUpdateIcon.a:-1 com.asus.powersaver.animatedicon.PowerSaverUpdateIcon$1.onReceive:-1
09-20 03:41:42.023 2897 2937 E JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 604656)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: Exception when sending broadcast to ComponentInfo{com.asus.launcher/com.asus.launcher.AsusAnimationIconReceiver}
09-20 03:41:42.024 2897 2937 W BroadcastQueue: android.os.TransactionTooLargeException: data parcel size 604656 bytes
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at android.os.BinderProxy.transactNative(Native Method)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at android.os.BinderProxy.transact(Binder.java:503)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at android.app.ApplicationThreadProxy.scheduleReceiver(ApplicationThreadNative.java:891)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at com.android.server.am.BroadcastQueue.processCurBroadcastLocked(BroadcastQueue.java:278)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at com.android.server.am.BroadcastQueue.processNextBroadcast(BroadcastQueue.java:1044)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at com.android.server.am.BroadcastQueue$BroadcastHandler.handleMessage(BroadcastQueue.java:173)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at android.os.Handler.dispatchMessage(Handler.java:102)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at android.os.Looper.loop(Looper.java:148)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at android.os.HandlerThread.run(HandlerThread.java:61)
09-20 03:41:42.024 2897 2937 W BroadcastQueue: at com.android.server.ServiceThread.run(ServiceThread.java:46)
09-20 03:41:42.115 2897 5010 I WindowState: WIN DEATH: Window{230c449 u0 com.asus.launcher/com.android.launcher3.Launcher}
09-20 03:41:42.116 2897 2935 D GraphicsStats: Buffer count: 3
09-20 03:41:42.133 2897 2937 W ActivityManager: Scheduling restart of crashed service com.asus.launcher/.applock.service.LauncherService in 1000ms
09-20 03:41:42.153 2897 2937 I ActivityManager: Start proc 13496:com.asus.launcher/u0a13 for broadcast com.asus.launcher/.AsusAnimationIconReceiver
09-20 03:41:42.154 2897 2936 W art : Long monitor contention event with owner method=void com.android.server.am.BroadcastQueue.processNextBroadcast(boolean) from BroadcastQueue.java:645 waiters=0 for 134ms
可以看出是PowerSaverUpdateIcon这货发了个intent但是包的大小超过了40k导致launcher挂了重启