ANRは例外、エラー、または何ですか?実際にtry{} catch(){}
構造でそれを捕まえることはできますか?"ANR"は例外かエラーか何ですか?
答えて
ANR(アプリケーションが応答していない)は、まさにエラーではありません。アプリケーションが非常に低速で応答時間が長い場合に表示され、ユーザーは待機します。あなたのアプリケーションが長い間待たされても、ユーザーは気にしません。したがって、Androidフレームワークはユーザーにアプリケーションを閉じるオプションを提供します。 http://developer.android.com/guide/practices/design/responsiveness.html
これは、メインスレッドで長時間実行されている操作を実行している場合に発生します。メインスレッドがブロックされているので、システムはこの期間中にユーザーの対話を処理できません。解決策は、ワーカースレッドで大量の操作を行い、メインスレッドを解放した状態に保つことです。メインスレッドが重い計算してか、ネットワークソケットから データを読み込むビジー状態の場合
あなたが想像できるように(ANR)ダイアログ
を応答しないアプリケーション、それはすぐにこのようなユーザ入力に応答することはできません をタップまたはスワイプします。
ユーザーとのやりとりに迅速に応答しないアプリケーションでは、 が応答しないと感じます。何百ミリ秒以上の遅延がある場合は、 が目立ちます。これはAndroidプラットフォームが ユーザーをメインスレッドであまりにも多くのアプリケーションから保護するというような悪質な問題です。
お知らせ:
アプリはFVE秒以内にユーザーの入力に応答しない場合、 ユーザーは、アプリケーションが(ANR)ダイアログと は、アプリケーションを終了するためのオプションが提供されますが応答しない表示されます。
次のスクリーンショット
は、一般的なAndroidのANRダイアログを示していますAndroidはユーザーインターフェイスが ハードウェアリフレッシュレートを再描画同期するように努めています。これは、 秒あたり60フレームのレートで再描画することを目指していることを意味します。これはフレームあたりわずか16.67msです。 を16 ms近くのどこかで使用するメインスレッドで作業すると、フレームレートに影響を与え、結果としてジャンクをぼやけて アニメーションやジャーキースクロールなどが発生する可能性があります。
もちろん、1つのフレームを削除するのは理想的です。 Jank、反応しない、 、特にANRは、非常に悪いユーザーエクスペリエンスを提供し、これは悪いレビューと人気のないアプリケーション に翻訳されます。 Android のアプリケーションをビルドする際のルールは次のとおりです。メインスレッドをブロックしないでください!
注意:アプリケーションは は、メインスレッド上で長時間実行の操作を実行すると
のAndroidは開発者向けのオプションに役立つstrictモードの設定各デバイスの 、画面上になるFL灰を提供します。
さらに保護が新しい例外クラスの 導入により、ハニカム(APIレベル11)でプラットフォームに加えて、NetworkOnMainThreadException、システムがネットワークアクティビティを検出した場合にスローされるのRuntimeExceptionのサブクラス は、メインスレッド上で を開始しました。
出典:
非同期のAndroidプログラミング - 第2版 - ヘルダーヴァスコンセロス - 2016年7月
- 1. アンドロイドのANRダイアログとは何ですか?
- 2. ANRエラー - > ANR keyDispatchingTimedOut
- 3. C#例外は何ですか?
- 4. この例外は何ですか?
- 5. Delphi「外部例外C0FB007F」とは何ですか?
- 6. ファイルの解析エラーに使用する例外クラスは何ですか?
- 7. Imが例外を取得するTypeload例外は何ができますか?
- 8. 例外はケースクラスですか?
- 9. Hibernate StaleObjectStateException、それはSpringのデータアクセス例外とは何ですか?
- 10. .NET/C#でリラックスした例外とは何ですか?
- 11. このコードでNullリファレンス例外の原因は何ですか?
- 12. javascriptで一貫したイベント名の例外は何ですか?
- 13. Silverlightでの例外処理のベストプラクティスは何ですか?
- 14. @throws例外でEXC_CRASHの原因は何ですか?
- 15. JavaのserialVersionUIDとは何ですか、通常は例外クラスですか?
- 16. 例外をスローする点は何ですか?
- 17. ユーザーの例外を記録するオンラインサービスは何ですか?
- 18. エラー報告の例外をスローするAntlr3 Cランタイムとは何か
- 19. HessianProxyFactoryのオプション、設定、および例外は何ですか?
- 20. vb.netの例外の種類は何ですか?
- 21. Scalaの標準例外とは何ですか?
- 22. throw/catch例外の名前の由来は何ですか?
- 23. Pythonの例外安全性の状態は何ですか?
- 24. 割り込みと例外コンテキストの違いは何ですか?
- 25. 例外処理パーソナリティ関数とは何ですか?
- 26. 私の例外は何が問題なのですか?
- 27. 例外の正しいHTTPステータスは何ですか?
- 28. この例外の原因は何ですか?
- 29. App Engineのタイムアウト例外の名前は何ですか?
- 30. バグと例外の違いは何ですか?
あなたが使用しているものプラットフォーム言及するのを忘れてしまいました。 –
"I/Choreographer(xxx):xxxフレームをスキップしました!アプリケーションが主なスレッドで多すぎる作業をしている可能性があります"を探します。あなたのlogcatに。これは、あなたの問題を発見するのに役立ちます。 – Christ
「what」のように見えます – Kirby