問題タブ [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.
java - サーバーに時間遅延がある場合にAndroidでANR応答を回避するにはどうすればよいですか?
私はAndroidを初めて使用しますが、JavaとJava EEについてある程度知っています。サーバー(Webサービス)と通信している間は、サーバー(Webサービス)からの応答で正常に動作します。ただし、5秒を超える時間遅延がある場合は、になりANR
ます。ここで私の質問は、サーバーが応答しているかどうかを知るために、Java機能を確認する方法です。これで何かアイデアはありますか?
いくつかの関連する例でさえ私を助けます。
コードスニペット
追加情報:私はAndroidで&jax.ws
を作成するために使用しています。前もって感謝します。webservice
ksoap api
編集
ここで構文にフレーミングしている間、これを入れるのを逃しました.. !!
android - AppWidgetProviderからサービスを起動するときのANR
大きな画像ファイルをダウンロードして更新するシンプルなウィジェットを開発しています。そのためには、画像を取得するサービスを起動するだけです。AppWidgetProviderのonUpdateメソッドから起動します。そのように:
Wi-Fiではすべてがうまく機能しています。しかし、3Gネットワークでは低速であるため、ダウンロードに時間がかかりすぎます。その結果、私のサービスはアンドロイドシステムによって殺されます。ここにトレースがあります:
だから私の質問は:-このANRを回避するにはどうすればよいですか?-このような状況でサービスを利用するのは正しいですか?-そうでない場合、そのような治療を行うために何を使用する必要がありますか?
よろしくお願いします:)
android - デバイスがスリープ状態になった後にANRを取得しました(Android)
デバイスがスリープ状態になり、ウェイクアップした後、この奇妙なANRkeydispatchingtimedoutの問題が発生します。ANRを取得するには15〜20分の睡眠が必要なので、バグの再現は少し難しいです。UIスレッドで集中的なタスクを実行していません。デバイスがスリープ状態になると、アプリはバックグラウンド(スレッド)作業を続けますが、それ以外は何もしません。
android - アプリケーションのデバッグ中に ANR がクラッシュする
アプリを作成しましたが、正常に動作します。しかし、アプリをデバッグすると、デバイスがロックされることがあります。次に、デバイスのロックを解除すると、クラッシュしてANR
(Activity Not Responding) が表示されます。logcat を見ましたが、そこから手がかりを得ることができません。だから、これを解決するのを手伝ってください。私のlogcatは以下のとおりです。
android - 誰かがこの ANR ログに光を当てることができますか?
開発者コンソールでこの ANR レポートを受け取りましたが、少しおかしいと思いました。ファイルに関係しているようですが、よくわからないので、誰かがそれに光を当ててくれることを望んでいました. どうもありがとう!
android - AsyncTask を使用して長時間実行されるタスクを実行していますが、メイン UI でまだ実行しているようです
ファイルを圧縮および解凍するテストアプリを作成しようとしています。ファイルの圧縮/解凍を行うためのオープンソース ライブラリを見つけましたが、ご想像のとおり、時間がかかるため、メイン UI で実行できないため、AsyncTask を使用してバックグラウンド スレッドで重い作業を行うことにしました。 、そして吐き始めただけで、終了したメッセージとすべてがうまくいくでしょう。しかし、ここで2つの大きな問題があります。ボタンを押すと、ファイルが解凍されますが、アプリがロックされ、anr画面が表示されるため、バックグラウンドスレッドではなくメインUIで実行されているように見えます。新しいスレッドは ddms ビューを使用して表示されますが、何も表示されません。待ちたいと伝えると、ファイルが解凍されます。しかし、もちろん、プログラムがフリーズしたり、私に不安を感じさせたりしたくありません。他の問題は、クリックされた直後と、aysc タスクが終了したときにボタンのテキストを更新するように設定していることです。どちらの変更も見られないので、テキストを変更して、すべての場所が異なるようにしました。また、ステータス メッセージにテキスト フィールドを設定することになっています。onPostExecute が呼び出されることはないと思います。誰かがここで何が起こっているのか教えてもらえますか?
android - キャッチされていない例外が原因でサービスが Android によって強制終了されるのを防ぐにはどうすればよいですか?
キャッチされていない例外が原因で Android サービスが強制終了されるのを防ぐ方法があるかどうかを調査しています。
5 ~ 6 個のサービスと通信する 10 個の UI アプリがあります。プラットフォームは Android 2.2 です。
予期しない状況により、サービスのロジックの一部が時々例外をスローしています。これにより、迷惑な ANR ポップアップでこれらのサービスが停止されます。これらの例外の根本的な原因を修正するソリューションに取り組んでいますが、Android が問題のあるサービスを強制終了しないようにしたいと考えています。
サービス内のすべてのスレッドに対して Uncaught のデフォルトの例外ハンドラを登録できるようです。これは、例外に関する何かをログに記録する機会を与えてくれます。それはいいです。後で使用するために、この手法を使用してクラッシュ情報をファイルに記録する多くの投稿に出くわしました。人々は、ANR ポップアップを防ぐために元の例外をスローしないことを提案しました。また、サービスが半減状態になる可能性があることを示唆する記事もいくつか見つけました。正しいことは、サービスを強制終了して再起動することです。強制終了して再起動することは、私が興味を持っているオプションではありません。
例外をスローしない場合の半死状態の部分がよくわかりませんでした。さらに調査するつもりです。その間、人々に提案があるかどうか疑問に思っています。
私の目標は、ANR ポップアップを防ぐことです。Android フレームワークがサービスを再起動するかどうかを決定するのではなく、コードでサービスを再起動するかどうかを決定する必要があります。
私が見つけたいのは次のとおりです
。1)サービスがフレームワークコードによって強制終了されるのを防ぐために変更できるマニフェストにフラグはありますか?
2)キャッチされていない例外を処理できるようにするサービスでオーバーライドできるメソッドはありますが、サービススレッドはクライアントからの次の要求を待機状態に戻すことができますか?
提案をありがとう。
ビデオガイ
更新:
Uncaught の既定の例外ハンドラーは、ここでは役に立ちません。何かをログに記録する機会が得られますが、サービス スレッドは引き続き終了します。
プロセスを強制終了しないように、Android フレームワークを変更する必要があります。AndroidフレームワークのActivityManagerService.javaには、クライアントなしでサービスを実行できる時間、バックグラウンドアクティビティ/サービスの数、サービスとUIの初期化のタイムアウトなど、さまざまなしきい値があります。これらの値を上げました。
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 はアクティビティです
android - Android での ANR keyDispatchingTimedOut
これまでこの問題に対処したことがないため、詳細をお伝えすることはできません。これはフリーズであり、この問題の処理方法と修正方法を知りたいと考えています。原因はANRのkeyDispatchingTimedOutだそうです
android - Android で Application Not Responding Dialog をトリガーするのは誰ですか?
入力イベントが 5 秒以内に処理されない場合、Android で Application Not Responding Dialog をトリガーするのは誰の責任ですか? それは...ですか
Dalvik ランタイム環境
また
Android フレームワークの特定のマネージャー
?