問題タブ [looper]

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

android - java.lang.RuntimeException: Looper.prepare() の問題

アプリで AsyncTask を使用していますが、コードは次のとおりです。

およびGetGpsCoordinates.class、

looper.prepare() を使用すると例外が発生します。これは私のlogcatです。

onSensorChanged() でこの asynctask を呼び出しています。つまり、センサー値が変更されるたびに、このスレッドが実行されます。私を助けてください。私はこの例外に非常に不満を感じています。助けてくれてありがとう!!

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

java - Android Gingerbread: Can't create handler inside thread that has not called Looper.prepare()

I have a code like this:

The Timer should execute CheckMessageTask every 10 minutes. The problem is that this error appears:

CheckMessageTask extends Asynctask and doesn't run UI code, so that is not the reason. The code works fine on Android Jelly Bean 4.1.2, but not on Android Gingerbread. How can I fix it?

0 投票する
3 に答える
10360 参照

android - GPS Android の LocationManager requestLocationUpdates()

基本的な HTTP 要求を処理するサービスとしてアプリケーションを開発しました。電話が次のような HTTP Post 要求を受信するhttp ://IP:port/gps/onと、次のように GPS リスナーに登録する必要があります。

しかし、このコードはハンドラー内に存在するため、次のエラーが発生します。

これにハンドラ/ルーパーを使用する必要があるかどうか教えてください。そして、これを行う方法の例。前もって感謝します!

GPS を登録するコードは、HTTP 要求を処理するクラスによって呼び出されます。

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

android - Android - ハンドラーでメッセージを受信できません

ListView は、SQLite データベースから値を取得して ArrayList にロードするバックグラウンド スレッドからロードされます。結果を表示するこのスレッドは CustomHandler を呼び出しますが、スレッドからメッセージを受信しません。

サンプルコードは次のとおりです。

HandlerThread スレッド。

ハンドラーが Log.i() 内にテキストを表示しない理由がわかりません

ここに私の完全なコード:

パート1 :

パート2 :

Handler がメッセージを受信しない場合、listView を表示できません。


このようなコードを編集して解決策を見つけました:

handleMessage(Message msg) をオーバーライドしてハンドラーの作成に実装します。pskink の提案で、CursorAdapter クラスを使用してコードを書き直しています。

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

java - メイン イベント ループによってコードの実行が中断される可能性はありますか?

私は1つのスレッドについて話しています。たとえば、Activity ui と次のメソッドがあります。

私の質問は、onClick() ハンドラーの実行によって doComplicatedStuff() を中断できますか (もちろん、クリックされたボタンがある場合) ?

これで、onClick() ハンドラーは doComplicatedStuff() が作業を終了するまで doComplicatedStuff() の実行を中断できないと思います。コード実行の最上位にルーパーがあるため、次のメッセージ イベントを受け取り、ハンドラーにディスパッチします (ハンドラーは onClick() メソッドを呼び出します)。つまり、Looper は、このスレッドで実行中のメソッドがない場合にのみ作業を行います。

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

android - LocationListener onLocationChanged は、DashClock 拡張機能で常に呼び出されるわけではありません

クリックするか時間間隔で更新できる DashClock 拡張機能があるので、AsyncTask を使用しています。ユーザーの位置情報が必要なので、LocationListener も使用します。onLocationChanged がトリガーされず、拡張機能が更新されないことがあります。2 週間にわたって別の方法を試してみましたが、期待どおりに機能しませんでした。

ここにコード全体があります。

onLocationChangedは 530 行目にあります

私のAsyncTaskは 290 行目にあります

requestSingleUpdateを呼び出す関数は 197 行にあります。

スレッドの問題だと確信していますが、解決方法がわかりません...

詳細が必要な場合は、喜んで提供させていただきます。

編集:私はついにそれを理解しました.新しい場所が取得される前に私のAsyncTaskが死んだので、天気の更新ロジックを変更し、今は動作します!