Sprint锁定我的应用程序? (来自com.carrieriq.iqagent.client的ANR)

时间:2011-09-15 06:09:25

标签: android android-anr-dialog

背景信息:我有一个应用程序已经上市一年多了,最后一次更新是在三个月前。从来没有ANR错误的问题。该应用程序相当稳定,100,000多个有效安装。

最近,我从我的应用程序中的不同位置获取了ANR keyDispatchingTimedOut报告(大约30个),并且所有报告都与com.carrieriq.iqagent.client有关。

例如, 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)

- SomeRunnable.java第299行只是adialog.show();

报告中唯一的另一个主题是:

"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)

我在网上搜索,发现人们声称有电池问题: http://forums.androidcentral.com/sprint-optimus-s/45729-ever-wondered-what-iqagent.html

所以问题是,我不确定我应该怎么做(检查包是否存在并警告用户可能?)或者这是真的吗?

这个包显示在我得到的所有ANR迹线中。 (所以只有sprint用户才遇到这个问题)

1 个答案:

答案 0 :(得分:0)

这似乎是IQclient中的合法竞争条件。有趣的是,当你的线程试图处理按钮按下时,HeapWorker线程被关闭了。如果你能弄清楚该线程被关闭的原因,你可能会找到一个解决方案。可悲的是,如果没有责备,这可能会很难。