In the dev console I'm getting ANRs on various 4.x Android versions apparently due to AlarmManager calls (set, cancel) from the UI thread hanging.
Here's my app trace from the console, triggered by a location listener change: "main" prio=5 tid=1 NATIVE | group="main" sCount=1 dsCount=0 obj=0x41667e40 self=0x4158a510 | sysTid=23105 nice=0 sched=0/0 cgrp=apps handle=1074155860 | state=S schedstat=( 0 0 0 ) utm=265 stm=70 core=0 #00 pc 00020660 /system/lib/libc.so (__ioctl+8) #01 pc 0002cf77 /system/lib/libc.so (ioctl+14) #02 pc 0001d3ed /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140) .... at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:154) at android.app.AlarmManager.setImpl(AlarmManager.java:363) at android.app.AlarmManager.set(AlarmManager.java:191) at net.dinglisch.android.taskerm.ahu.b((null):-1) at net.dinglisch.android.taskerm.ahu.a((null):-1) at net.dinglisch.android.taskerm.ahu.a((null):-1) at net.dinglisch.android.taskerm.ahu.a((null):-1) at net.dinglisch.android.taskerm.MonitorService.a((null):-1) at net.dinglisch.android.taskerm.MonitorService.b((null):-1) at net.dinglisch.android.taskerm.ahr.a((null):-1) at net.dinglisch.android.taskerm.ahr.d((null):-1) at net.dinglisch.android.taskerm.ahr.d((null):-1) at net.dinglisch.android.taskerm.ea.onLocationChanged((null):-1) ... I'm not sure the difference between a 'MONITOR' and a 'NATIVE' thread, but in the traces below it looks like the UI thread and several Android services are all hanging waiting for a lock held by Binder_2, which is SUSPENDED (bottom of list). Anyone seeing similar traces ? I think maybe a common 'thread' is that there's a high load on the system at the time caused by background services. But surely that wouldn't delay the AlarmManager calls for 10 seconds !? TIA, Pent "main" prio=5 tid=1 MONITOR | group="main" sCount=1 dsCount=0 obj=0x41667e40 self=0x4158a510 | sysTid=924 nice=-2 sched=0/0 cgrp=apps handle=1074155860 | state=S schedstat=( 0 0 0 ) utm=9864 stm=2174 core=1 at com.android.server.AlarmManagerService.remove(AlarmManagerService.java:~725) - waiting to lock <0x42723dd8> (a java.lang.Object) held by tid=9 (Binder_2) at android.app.AlarmManager.cancel(AlarmManager.java:479) at com.android.server.IdleMaintenanceService.unscheduleUpdateIdleMaintenanceState(IdleMaintenanceService.java:159) at com.android.server.IdleMaintenanceService.onReceive(IdleMaintenanceService.java:302) at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at com.android.server.ServerThread.initAndLoop(SystemServer.java:1320) at com.android.server.SystemServer.main(SystemServer.java:1485) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) ` "WifiService" prio=5 tid=38 MONITOR | group="main" sCount=1 dsCount=0 obj=0x42b65dd0 self=0x63cac3e0 | sysTid=1041 nice=0 sched=0/0 cgrp=apps handle=1674233912 | state=S schedstat=( 0 0 0 ) utm=267 stm=48 core=0 at com.android.server.AlarmManagerService.remove(AlarmManagerService.java:~725) - waiting to lock <0x42723dd8> (a java.lang.Object) held by tid=9 (Binder_2) at android.app.AlarmManager.cancel(AlarmManager.java:479) at com.android.server.wifi.WifiController$DefaultState.processMessage(WifiController.java:324) ... "Binder_3" prio=5 tid=47 MONITOR | group="main" sCount=1 dsCount=0 obj=0x42942c48 self=0x620c89f0 | sysTid=1204 nice=0 sched=0/0 cgrp=apps handle=1644379440 | state=S schedstat=( 0 0 0 ) utm=53871 stm=3892 core=1 at com.android.server.AlarmManagerService.set(AlarmManagerService.java:~561) - waiting to lock <0x42723dd8> (a java.lang.Object) held by tid=9 (Binder_2) at com.android.server.AlarmManagerService.set(AlarmManagerService.java:520) at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:75) at android.os.Binder.execTransact(Binder.java:404) at dalvik.system.NativeStart.run(Native Method) "Binder_2" prio=5 tid=9 SUSPENDED | group="main" sCount=1 dsCount=0 obj=0x41f24d00 self=0x5b45a250 | sysTid=935 nice=0 sched=0/0 cgrp=apps handle=1531289608 | state=S schedstat=( 0 0 0 ) utm=53511 stm=3877 core=1 at java.util.ArrayList.size(ArrayList.java:~319) at com.android.server.AlarmManagerService$Batch.remove(AlarmManagerService.java:190) at com.android.server.AlarmManagerService.removeLocked(AlarmManagerService.java:734) at com.android.server.AlarmManagerService.setImplLocked(AlarmManagerService.java:578) at com.android.server.AlarmManagerService.rebatchAllAlarmsLocked(AlarmManagerService.java:400) at com.android.server.AlarmManagerService.removeLocked(AlarmManagerService.java:744) at com.android.server.AlarmManagerService.setImplLocked(AlarmManagerService.java:578) at com.android.server.AlarmManagerService.set(AlarmManagerService.java:568) at com.android.server.AlarmManagerService.set(AlarmManagerService.java:520) at android.app.IAlarmManager$Stub.onTransact(IAlarmManager.java:75) at android.os.Binder.execTransact(Binder.java:404) at dalvik.system.NativeStart.run(Native Method) -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.