問題タブ [android-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 投票する
2 に答える
3679 参照

android - Androidでタイマーを使用して10分ごとにGpsを追跡する

私は Android アプリケーションを開発しており、GPS を介して 10 分ごとに位置を追跡するサービスを使用しています。しかし、ロケーション リスナーをタイマー タスクに配置すると、例外がスローされます。

を呼び出していないスレッド内にコードを配置することはできませんlooper.prepare()

誰かがこの問題について何か洞察を持っていますか?

0 投票する
4 に答える
23480 参照

android - ハンドラ、MessageQueue、Looper はすべて UI スレッドで実行されますか?

私はスレッド化に頭を悩ませようとしていますが、 を使用してHandlerにメッセージ/ランナブルをポストしMessageQueue、それが によって取得され、処理Looperのために に送り返されることを知っていHandlerます。

Handlerアクティビティでに投稿した場合、 ActivityHandlerMessageQueueおよびLooperすべてが UI スレッドで実行されていますか? そうでない場合、誰かがこれがどのようにまとめられたのか説明してもらえますか? :)

0 投票する
13 に答える
197469 参照

android - Looperの目的と使用方法は何ですか?

私はAndroidを初めて使用します。Looperクラスの内容と使い方を知りたいです。Android Looperクラスのドキュメントを読みましたが、完全に理解できません。いろいろなところで見ましたが、その目的がわかりません。Looper誰かが目的を定義し、可能であれば簡単な例を示すことによって私を助けることができますか?

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

android - Android AsyncTask [Looper.prepare()を呼び出していないスレッド内にハンドラーを作成できません]

AsyncTask関数に基づいて画像のアップロードを作成しました。アップロードした後、でこのエラーが発生しonPostExecute()ます。StackOverflowの回答をいくつか読みましたがRunnable、別のソリューションを実装したにもかかわらず、エラーが何度も発生し続けました。

私のコード:

私のlogcat:

zaplの提案の後に編集:

0 投票する
5 に答える
6442 参照

android - Android : Looper.prepare() を呼び出していないスレッド内でハンドラを作成できない

私のアプリには、何かを行うときに進行状況ダイアログを表示するこのメソッドを持つサービス クラスがあります。

アプリの実行中に作業の進行状況ダイアログが表示されるようにしたいのですが、アプリを実行すると次のエラーが発生します。

呼び出されていないスレッド内にハンドラーを作成できませんLooper.prepare()

どうすれば修正できますか?

編集 :

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

java - HandlerThread.getLooper() が無期限にブロックする

HandlerThread を使用して、独自のスレッドで MediaPlayer を実行する方法を学習しようとしています。しかし、私は最初のステップで失敗しています。Java/Android のスレッドを理解するのに 2 日間苦労しましたが、本当に助けが必要です。(Java と Android の両方で数え切れないほどの例と javadoc ページを読みました)、非常にイライラしたり、愚かだと感じています。

以下の例では、getLooper() は無期限にブロックします。理由がわかりません。以下のコードを修正してこれを修正する方法を教えてください。

また、MediaPlayer のメソッドが (非同期で) 呼び出されるメッセージを送信する方法の例は非常に価値があり、おそらく 1 週間節約できます。

ありがとうございました

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

android - HandlerThread の NullPointerException

このバグは何時間も私を困惑させました。NullPointerExceptionを取得しています。問題は、このエラーが一貫していないことです。アプリを起動すると発生しますが、たまにしか発生しません。そのため、何が原因なのかわかりません。

エラー ログで冗長な質問をして申し訳ありませんが、別の質問方法が見つかりませんでした。

エラーログは次のとおりです。

そして、これが起こっているコードを以下に示します。

ご参考までに、エラー ログの 74 行目 (より具体的には、これは、次のコード行をat com.myproject.android.ImageDownloaderThread.queueImage(ImageDownloaderThread.java:74)参照しています。.obtainMessage(MESSAGE_DOWNLOAD, pos, 0, url)queueImage()


編集

Loopの回答の提案によると、呼び出されたときにmHandlernullですqueueImage()。では、呼び出しを実行する前mHandlerに初期化されることを保証するにはどうすればよいですか?onLooperPrepared()queueImage()

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

java - 非アクティビティ クラスの静的メソッドで Toast を起動する

非アクティビティ クラスの静的メソッドでトースト メッセージを起動したいと考えています。私はそれについて多くのスレッドを読みましたが、私の状況はもう少し複雑です。特に:

サービスがあり、OnStartCommand で別のクラスの静的メソッドを一定間隔で呼び出します。この呼び出されたメソッドでは、特定のケースでトースト メッセージを表示したいと考えています。

また、アプリケーションを拡張するサポート クラスを作成しようとしました。このクラスには、必要なときに取得するアプリケーション コンテキストがありますが、何もする必要はありません。

これは、静的メソッド AllInterfacesActived を呼び出す Service クラスのメソッドです。

OracoloBrain クラス (非アクティビティ クラス) には、静的メソッド AllInterfacesActived があります。このメソッドに関するコードは省略しますが、Toast を表示したい場合があります。MyApplication.java という別のクラスを作成しようとしています。

したがって、このコンテキストを使用してトーストを起動しようとしましたが、何もしません。

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

android - 同じルーパーを異なるスレッドに関連付ける

私のアプリケーションでは、単一のキューで動作する複数のスレッドを作成したいと考えています。キューを作成するには、 を呼び出す必要があることがわかっていますLooper.prepare()

作成した他のすべてのスレッドをlooper、最初のスレッドで作成したスレッドに関連付ける必要があります。これを実現するにはどうすればよいですか?