Android アプリケーションが応答しない場合、ANR ダイアログがポップアップします。私の質問は、Android プラットフォームが ANR をどのように検出し、そのようなポップアップ ダイアログを開始するかを決定する方法です。
3038 次
1 に答える
3
これは、UI スレッドと、UI スレッドがメッセージ ループに戻るのにかかる時間に基づいています (メッセージ ループはアプリ開発者には表示されませんが、UI スレッドにはユーザー入力のメッセージを受け取る巨大なループがあり、描画リクエスト、AsyncTask の完了など)。基本的に、ANR を宣言する前に、メッセージごとに一定の時間が与えられます。メッセージを待って眠っている時間が ANR を引き起こすことはありません。Android には、スレッドが最後にそのループの先頭に到達してからの時間をチェックする別のウォッチドッグ プロセスがあり、長すぎる場合はスレッドを強制終了し、ANR ダイアログを表示します。
于 2013-01-30T20:48:26.563 に答える