Bridge(adb)を使用します。コマンドを使用すると、物理デバイスからバグレポートを取得できます。詳細については、バグレポートのキャプチャと確認をご覧ください。問題を解決する問題を特定したら、このセクションのヒントを使用してよくある問題を解決できます。秒を超えてビジー状態になっているコード内の場所を特定します。タイムラインを示しています。ハンドラのコードは次のとおりです。スレッドに移動する必要があります。スレッドに移行するために役立つクラスが用意されています。詳細については、スレッド化のヘルパークラスをご覧ください。スレッドでタスクを処理する方法を示しています。スレッドで実行されることを示します。メインスレッドは、ユーザーイベントに応答するために使用できます。発生する可能性があります。スレッドに移動することをおすすめします。オペレーションがあります。オペレーションの実行とデータの保存をご覧ください。原因となる作業がアプリのメインスレッドで直接実行されていないこともあります。発生することがあります。タイムラインを示しています。メインスレッドのステータスを確認する必要があります。状態であり、イベントに応答できません。ステータスのメインスレッド次のトレースは、リソースを待機してブロック状態にあるアプリのメインスレッドを示しています。...トレースを確認すると、メインスレッドをブロックしているコードを見つけるのに役立ちます。次のコードは、前のトレースでメインスレッドをブロックするロックを保持している原因です。スレッドからの結果を待機しているアプリのメインスレッドです。使用する方法はおすすめしません。固有のメカニズムを使用する必要があります。使用するスレッド、リソースプール(データベース接続のプールなど)、その他の相互排他(mutex)メカニズムを含め、メインスレッドをブロックする可能性のある状況は他にもあります。回避する場合は、メインスレッドで必要なリソースに対して保持されているロックを確認する必要があります。ロックの保持時間が最小限であることを確認します。そもそもアプリが保持を必要としているかどうかを評価することが重要です。スレッドとメインスレッドの間でやり取りします。つのスレッドがあり、スレッドが待機状態に入ると、デッドロックが発生します。発生する可能性があります。サイエンスでよく研究されている現象で、デッドロックを回避するために使用できるデッドロック防止アルゴリズムがあります。デッドロックとデッドロック防止アルゴリズムをご覧ください。メッセージに応答できます。次の場合に発生します。メソッドの実行を完了していない。メソッドで短いオペレーションのみ行うようにします。延期する必要があります。レシーバが実行しているかどうかを確認できます。レシーバのタイムラインを示しています。メソッドで長時間実行オペレーションを実行することで発生する可能性があります。移動することをおすすめします。使用して長時間実行オペレーションを処理する方法を示しています。スレッドで実行されます。スレッドに延期された作業を示しています。使用して、メッセージの処理に時間がかかることをシステムに通知できます。呼び出す必要があります。回避する例を次に示します。タイムアウトが適用されます。詳細については、アプリの応答性を維持するをご覧ください。スレッドの詳細については、スレッド化のパフォーマンスをご覧ください。