18

私はAndroidを初めて使用し、デバッグの問題を抱えています。ANR の目的はわかっていますが、アプリを通常どおり実行しても表示されません。しかし、BoradcastReceiver をデバッグしようとすると、遅すぎて ANR メッセージが表示されます。

デバッグ セッション中に ANR をオフにする方法はありますか? ログステートメントを使用して何が起こっているかを確認できますが、これは面倒です....

編集: 実際には、LogCat で ANR を抑制したくありません。デバッグ中に ANR をスローしないように Android に伝えたいです。これは、ブロードキャスト レシーバーの実行に 5 秒以上かかることを許可することを意味します。しかし、それは不可能だと思います。代わりに、より長く実行できるサービスに委任する必要があります。これにより、デバッグも容易になります。

前もって感謝します!

挨拶する

4

3 に答える 3

9

Go to Settings -> Developer options and check Show all ANRs.

This will show an App Not Responding dialog for apps running in the background. You can click the Wait button in the dialog to prevent the system from killing your process. Note that the dialog is opened automatically for apps running in the foreground. For background apps, you have to enable this option.

于 2013-12-16T22:01:00.503 に答える
1

いいえ。このメッセージはアプリケーションではなく Android OS によって処理されます。エミュレーターで非表示にする方法はありません。それを見たくないのにBroadcastReceiver呼び出しを正しく受け取り、コードが正常に実行されない場合は、try-catch ブロックを使用できます。アプリケーションがクラッシュする代わりに、catch が処理されます。トーストメッセージまたはあなたが望むもの。

于 2011-08-19T16:49:06.877 に答える
1

このリソースは、問題に役立つ場合があります。キーポイント:

  • -w を使用して、デバッガーがアタッチされるまでプロセスを待機させます。これは実際に onCreate() のブレークポイントで停止するのに役立ちます。デバッガーをアタッチすると、デバッグ フラグがクリアされます。次回アプリは通常の方法で起動します。
  • --persistent を使用して、プロセスが開始されるたびにデバッガーを待機します。
  • adb shell am clear-debug-app your.app.package--persistent を元に戻すために使用
于 2019-05-01T13:27:34.050 に答える