問題タブ [android-threading]

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 に答える
25 参照

android - まれな Handler.post により、巨大なフレーム ドロップとクラッシュが発生する

ネットワーク上のデバイスを検出するために、UDP ブロードキャストをリッスンする単純なスレッドがあります。ブロードキャストを受信するたびに、デバイスの IP を に追加するために、UI スレッドの に をRunnable投稿します。せいぜい、2 秒に 1 回パケットを受信します。投稿が 2 秒ごとにのみ発生することを確認しました。HandlerArrayList

私のアプリにもいくつかのフラグメントがあります。フラグメント間で使用を切り替えるたびにNavController.navigate()、100 ~ 400 のフレーム ドロップと ANR が発生します。スレッドを無効にするか、重複の検索とデバイスの追加を無効にするだけでもArrayList、フレームのドロップはなくなりますが、検索と追加にかかる時間は 1 ミリ秒未満です (デバッグ プリントによると)。

の問題に関する他のスレッドをたくさん読みましたHandlersが、どれも役に立ちませんでした。私の投稿がなぜ多くのフレームドロップを引き起こしているのか、何か考えはありますか?

スレッドの実行方法は次のとおりです。

そして、UI スレッドに投稿される addGeophone 関数: