1

コンテキスト: 既に 1 年以上市場にリリースされているアプリがあり、最後の更新は 3 か月前です。ANR エラーで問題が発生したことはありません。アプリはかなり安定しており、100,000 以上のアクティブなインストールが行われています。

最近、アプリのさまざまな場所から ANR keyDispatchingTimedOut レポート (約 30 件) を取得していますが、それらはすべて com.carrieriq.iqagent.client に関係しています。

たとえば、DALVIK スレッド:

「メイン」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=デフォルト ハンドル=-1345026000
  com.carrieriq.iqagent.client.NativeClient.acquire で (NativeClient.java:~35)
  - threadid=2 (HeapWorker) が保持するロック (java.lang.Object) を待機中
  com.carrieriq.iqagent.client.IQClient.(IQClient.java:115) で
  com.carrieriq.iqagent.client.IQClient.(IQClient.java:105) で
  android.app.AlertDialog$Builder.create(AlertDialog.java:826) で
  android.app.AlertDialog$Builder.show(AlertDialog.java:864) で
  com.myapp.button.pushed$SomeRunnable.run(SomeRunnable.java:299) で

-- SomeRunnable.java の 299 行目は単なる adialog.show(); です。

レポートの唯一の他のスレッドは次のとおりです。

「HeapWorker」デーモン 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=デフォルト ハンドル=1174376
  com.carrieriq.iqagent.client.NativeClient.clientShutdown(ネイティブメソッド)で
  com.carrieriq.iqagent.client.NativeClient.release(NativeClient.java:81) で
  com.carrieriq.iqagent.client.IQClient.disconnect(IQClient.java:341) で
  com.carrieriq.iqagent.client.IQClient.finalize(IQClient.java:354)
  dalvik.system.NativeStart.run (ネイティブ メソッド) で

オンラインでグーグル検索したところ、人々がバッテリーの問題があると主張しているのを見ました: http://forums.androidcentral.com/sprint-optimus-s/45729-ever-wondered-what-iqagent.html

質問は、これで何をすべきかわかりません (パッケージが存在することを確認し、ユーザーに警告する可能性がありますか?) またはそれが本当に理由ですか?

このパッケージは、取得したすべての ANR トレースに表示されます。(したがって、スプリント ユーザーのみがこの問題を抱えています)

4

1 に答える 1

0

これは、IQclient における正当な競合状態のようです。ただし興味深いのは、スレッドがボタンの押下を処理しようとしているときに、HeapWorker スレッドがシャットダウンされることです。そのスレッドがシャットダウンされている理由がわかれば、解決策が見つかるかもしれません。悲しいことに、再現がないと難しいかもしれません。

于 2011-09-17T02:57:49.470 に答える