Sprint locking up my app? (ANR from com.carrieriq.iqagent.client)
Context: I have an app is already released into the market for over a year, and the last update was three months ago. Never had problem with ANR errors. The app is fairly stable, 100,000+ active installs.
Recently, I have been getting ANR keyDispatchingTimedOut reports (about 30 of them) from various places in my app, and all of them has to do with com.carrieriq.iqagent.client.
For example, DALVIK THREADS:
"main" prio=5 tid=1 MONITOR | group="main" sCount=1 dsCount=0 s=N obj=0x40020a30 self=0xcd88 | sysTid=19807 nice=0 sched=0/0 cgrp=default handle=-1345026000 at com.carrieriq.iqagent.client.NativeClient.acquire(NativeClient.java:~35) - waiting to lock (a java.lang.Object) held by threadid=2 (HeapWorker) at com.carrieriq.iqagent.client.IQClient.(IQClient.java:115) at com.carrieriq.iqagent.client.IQClient.(IQClient.java:105) at android.app.AlertDialog$Builder.create(AlertDialog.java:826) at android.app.AlertDialog$Builder.show(AlertDialog.java:864) at com.myapp.button.pushed$SomeRunnable.run(SomeRunnable.java:299)
--The SomeRunnable.java line 299 is just adialog.show();
The only other thread in the report is:
"HeapWorker" daemon prio=5 tid=2 NATIVE | group="system" sCount=1 dsCount=0 s=N obj=0x43b55c98 self=0x11eba8 | sysTid=19808 nice=0 sched=0/0 cgrp=default handle=1174376 at com.carrieriq.iqagent.client.NativeClient.clientShutdown(Native Method) at com.carrieriq.iqagent.client.NativeClient.release(NativeClient.java:81) at com.carrieriq.iqagent.client.IQClient.disconnect(IQClient.java:341) at com.carrieriq.iqagent.client.IQClient.finalize(IQClient.java:354) at dalvik.system.NativeStart.run(Native Method)
I googled online and saw that people claim to have battery issues with it: http://forums.androidcentral.com/sprint-optimus-s/45729-ever-wondered-what-iqagent.html
So the question is, I am not sure what I should do with this (check that the package exists and warn the user maybe?) or is开发者_如何学JAVA it really the reason?
This package shows up in all the ANR traces that I get. (So only sprint users have been having this problem)
This seems like a legitimate race condition in the IQclient. The interesting part though is that the HeapWorker thread is shuttig down, at a time when your thread is trying to process the button press. If you can figure out why that thread is being shut down, you might find a solution. Sadly, that might be hard without a repro.
精彩评论