問題タブ [android-anr-dialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1218 参照

java - サーバーに時間遅延がある場合にAndroidでANR応答を回避するにはどうすればよいですか?

私はAndroidを初めて使用しますが、JavaとJava EEについてある程度知っています。サーバー(Webサービス)と通信している間は、サーバー(Webサービス)からの応答で正常に動作します。ただし、5秒を超える時間遅延がある場合は、になりANRます。ここで私の質問は、サーバーが応答しているかどうかを知るために、Java機能を確認する方法です。これで何かアイデアはありますか?

いくつかの関連する例でさえ私を助けます。

コードスニペット

追加情報:私はAndroidで&jax.wsを作成するために使用しています。前もって感謝します。webserviceksoap api

編集

ここで構文にフレーミングしている間、これを入れるのを逃しました.. !!

0 投票する
1 に答える
2995 参照

android - AppWidgetProviderからサービスを起動するときのANR

大きな画像ファイルをダウンロードして更新するシンプルなウィジェットを開発しています。そのためには、画像を取得するサービスを起動するだけです。AppWidgetProviderのonUpdateメソッドから起動します。そのように:

Wi-Fiではすべてがうまく機能しています。しかし、3Gネットワ​​ークでは低速であるため、ダウンロードに時間がかかりすぎます。その結果、私のサービスはアンドロイドシステムによって殺されます。ここにトレースがあります:

だから私の質問は:-このANRを回避するにはどうすればよいですか?-このような状況でサービスを利用するのは正しいですか?-そうでない場合、そのような治療を行うために何を使用する必要がありますか?

よろしくお願いします:)

0 投票する
1 に答える
321 参照

android - デバイスがスリープ状態になった後にANRを取得しました(Android)

デバイスがスリープ状態になり、ウェイクアップした後、この奇妙なANRkeydispatchingtimedoutの問題が発生します。ANRを取得するには15〜20分の睡眠が必要なので、バグの再現は少し難しいです。UIスレッドで集中的なタスクを実行していません。デバイスがスリープ状態になると、アプリはバックグラウンド(スレッド)作業を続けますが、それ以外は何もしません。

0 投票する
1 に答える
7133 参照

android - アプリケーションのデバッグ中に ANR がクラッシュする

アプリを作成しましたが、正常に動作します。しかし、アプリをデバッグすると、デバイスがロックされることがあります。次に、デバイスのロックを解除すると、クラッシュしてANR(Activity Not Responding) が表示されます。logcat を見ましたが、そこから手がかりを得ることができません。だから、これを解決するのを手伝ってください。私のlogcatは以下のとおりです。

0 投票する
1 に答える
4213 参照

android - 誰かがこの ANR ログに光を当てることができますか?

開発者コンソールでこの ANR レポートを受け取りましたが、少しおかしいと思いました。ファイルに関係しているようですが、よくわからないので、誰かがそれに光を当ててくれることを望んでいました. どうもありがとう!

0 投票する
2 に答える
769 参照

android - AsyncTask を使用して長時間実行されるタスクを実行していますが、メイン UI でまだ実行しているようです

ファイルを圧縮および解凍するテストアプリを作成しようとしています。ファイルの圧縮/解凍を行うためのオープンソース ライブラリを見つけましたが、ご想像のとおり、時間がかかるため、メイン UI で実行できないため、AsyncTask を使用してバックグラウンド スレッドで重い作業を行うことにしました。 、そして吐き始めただけで、終了したメッセージとすべてがうまくいくでしょう。しかし、ここで2つの大きな問題があります。ボタンを押すと、ファイルが解凍されますが、アプリがロックされ、anr画面が表示されるため、バックグラウンドスレッドではなくメインUIで実行されているように見えます。新しいスレッドは ddms ビューを使用して表示されますが、何も表示されません。待ちたいと伝えると、ファイルが解凍されます。しかし、もちろん、プログラムがフリーズしたり、私に不安を感じさせたりしたくありません。他の問題は、クリックされた直後と、aysc タスクが終了したときにボタンのテキストを更新するように設定していることです。どちらの変更も見られないので、テキストを変更して、すべての場所が異なるようにしました。また、ステータス メッセージにテキスト フィールドを設定することになっています。onPostExecute が呼び出されることはないと思います。誰かがここで何が起こっているのか教えてもらえますか?

0 投票する
2 に答える
1282 参照

android - キャッチされていない例外が原因でサービスが Android によって強制終了されるのを防ぐにはどうすればよいですか?

キャッチされていない例外が原因で Android サービスが強制終了されるのを防ぐ方法があるかどうかを調査しています。
5 ~ 6 個のサービスと通信する 10 個の UI アプリがあります。プラットフォームは Android 2.2 です。
予期しない状況により、サービスのロジックの一部が時々例外をスローしています。これにより、迷惑な ANR ポップアップでこれらのサービスが停止されます。これらの例外の根本的な原因を修正するソリューションに取り組んでいますが、Android が問題のあるサービスを強制終了しないようにしたいと考えています。

サービス内のすべてのスレッドに対して Uncaught のデフォルトの例外ハンドラを登録できるようです。これは、例外に関する何かをログに記録する機会を与えてくれます。それはいいです。後で使用するために、この手法を使用してクラッシュ情報をファイルに記録する多くの投稿に出くわしました。人々は、ANR ポップアップを防ぐために元の例外をスローしないことを提案しました。また、サービスが半減状態になる可能性があることを示唆する記事もいくつか見つけました。正しいことは、サービスを強制終了して再起動することです。強制終了して再起動することは、私が興味を持っているオプションではありません。

例外をスローしない場合の半死状態の部分がよくわかりませんでした。さらに調査するつもりです。その間、人々に提案があるかどうか疑問に思っています。
私の目標は、ANR ポップアップを防ぐことです。Android フレームワークがサービスを再起動するかどうかを決定するのではなく、コードでサービスを再起動するかどうかを決定する必要があります。

私が見つけたいのは次のとおりです
。1)サービスがフレームワークコードによって強制終了されるのを防ぐために変更できるマニフェストにフラグはありますか?

2)キャッチされていない例外を処理できるようにするサービスでオーバーライドできるメソッドはありますが、サービススレッドはクライアントからの次の要求を待機状態に戻すことができますか?

提案をありがとう。

ビデオガイ

更新:
Uncaught の既定の例外ハンドラーは、ここでは役に立ちません。何かをログに記録する機会が得られますが、サービス スレッドは引き続き終了します。

プロセスを強制終了しないように、Android フレームワークを変更する必要があります。AndroidフレームワークのActivityManagerService.javaには、クライアントなしでサービスを実行できる時間、バックグラウンドアクティビティ/サービスの数、サービスとUIの初期化のタイムアウトなど、さまざまなしきい値があります。これらの値を上げました。

0 投票する
1 に答える
482 参照

android - アクティビティ開始時の一部のデバイスでの ANR

一部のデバイスで、新しいアクティビティを開始するときに ANR が発生するバグがあります。私のデバイス (Samsung Galaxy S2) にはわずかな遅延がありますが、ANR はまったく得られません。時々 ANR を取得する他のデバイスは、HTC Desire HD と Xperia (私が知っている) です。古い携帯電話が新しい携帯電話よりも遅くなるのは、私がやっているある種のCPU集約的なことかもしれないと思っていますが、わかりません. 私は Asynctask を使用してすべての重いものをロードしていますが、UI スレッドは実際にはあまり機能しません。

コードはこちら

ここに別のスレッドを作成して、共有設定にアクセスします。

bgTask は AsyncTask です。

これは、すべてを描画し、onTouchEvents を処理する Surfaceview です。

surfaceCreated で drawThread を開始します

ウェブ上のガイドから表面破壊された

重要なコードだと思います。私が知る限り、UIthread は私が示したこれらの部分のみを実行します (ondestroy ではないかもしれませんが、誰かが別のスレッドでその部分に問題を抱えていることを読みました)。そして、それはほとんどのシステムでかなり高速に実行されるはずです.

asyncTask の実行が完了するまで、drawthread は「読み込み中」というテキストのみを表示します。したがって、すべてが読み込まれて描画されると、ユーザーは画面に触れ始め、ANR が表示されます。任意のヒント?

更新(12-05-18): エミュレータから logcat を取得できました。遅いコンピューターを使用しましたが、高速のコンピューターを使用すると、ANR が表示されませんでした。

PID 860 はアクティビティです

0 投票する
0 に答える
780 参照

android - Android での ANR keyDispatchingTimedOut

これまでこの問題に対処したことがないため、詳細をお伝えすることはできません。これはフリーズであり、この問題の処理方法と修正方法を知りたいと考えています。原因はANRのkeyDispatchingTimedOutだそうです

0 投票する
1 に答える
855 参照

android - Android で Application Not Responding Dialog をトリガーするのは誰ですか?

入力イベントが 5 秒以内に処理されない場合、Android で Application Not Responding Dialog をトリガーするのは誰の責任ですか? それは...ですか

Dalvik ランタイム環境

また

Android フレームワークの特定のマネージャー

?