問題タブ [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.
android - ui-threadsメッセージキュー、ルーパー、ハンドラークラス間の動作
私の考えが基本について正しいかどうか知りたいので、この質問を投稿します。
明確にする必要があるのは、UIスレッドにが含まれていることです。これは、メッセージ/実行可能ファイルを処理のためにキューから取得するために MessageQueue
関連付けられています。Looper
さらに、はHandler
メッセージ/ランナブルをに送信します。Looper
これにより、オブジェクトがに統合されますMessageQueue
。
正しくない場合、MessageQueue
はスタックでありLooper
、着信オブジェクトと発信オブジェクトの管理者です。
これは私の次の質問につながります。メッセージオブジェクトがUIスレッドによって処理される場合、グローバルメッセージプールにリサイクルされます。しかし、これに関する明確な文書はありません。このメッセージプールに特定のサイズはありますか?メッセージを送信/取得する場合、拡張/縮小できますか?
これが本当なら、多くのメッセージを取得することによってプールが枯渇する可能性があります。そして、私はこれを信じることができません。特定の期間にリサイクルのためにメッセージを返送せずに、いくつかのメッセージを取得する必要がある状況を考えてみてください。
わかりやすくするために編集しました。
android - ノンブロッキング Looper を入手できますか?
いくつかのロケーション計算用のメッセージルーパーを備えたスレッドがあります。このために私は電話します:
有効な Looper オブジェクトを取得するには、次のようにスレッドを準備します。
しかし、同じスレッドでデータ処理用の while ループを追加することは何とか可能でしょうか?
おそらく、どうにかして独自の Looper を派生させ、メッセージを手動で処理できますが、どうすればよいでしょうか?
android - ポーリング位置サービス android の作成に失敗しました
ロケーションの更新を開始し、2 分待ってから更新を削除するロケーションのポーリング サービスを作成しようとしています。
エミュレーターを使用して位置情報を送信しようとすると、位置情報リスナーが受信していないようです。
スレッドで作成したルーパーのハンドラを実装していないからでしょうか。
または、スレッドがスリープしているため、場所を受信できません
}
c++ - ルーパーはどこで入手できますか?
C++ 標準または C++ 標準ライブラリによる Looper はどこでどのように入手できますか?
独自のコールバック システムを設計する必要があり、もちろん、キューとコンポーネントを管理するためにこれが必要です。
ルーパーは、与えられた周波数が 1 つの単純なことを行うものです。各クロックでキューを実行するだけです。10 ミリ秒のルーパーを設定すると、10 ミリ秒ごとにルーパーがキュー内のイベントを発生させます。
これは基本的にルーパーであり、ほとんどの場合、カーネル、ハードウェア クロック、または非常に低レベルなものに関連付けられています。
android - ブロードキャスト レシーバ Android 内のスレッド
取得時に DownloadManager.ACTION_DOWNLOAD_COMPLETE ブロードキャストを取得しています。zip ファイルを抽出し、作業を行うためにコードを記述したデータベースに入力する必要があります。ただし、ファイルの抽出と挿入を処理するには、ここでスレッドを開始する必要があります。データベース。
ブロードキャストレシーバー内でスレッドを開始できないことを知っています。体に問題が発生した場合は、解決策を提案してください.. 私の仕事は挿入に時間がかかるので、待って固執したくない.
ブロードキャストレシーバー内でスレッドを実行しているときに例外が発生し、
このコードを書いても、放送受信機内では機能しません
注 - 例外やエラーは発生せず、デバッグ中に DDMS で Intentservice が開始されることもありません
。
android - android:Looper.prepare()を呼び出していないスレッド内にハンドラを作成できません
重複の可能性:
ProgressDialog の AsyncTask 内で Looper.prepare() を呼び出していないスレッド内でハンドラーを作成できない
私のプログラムでは、進行状況ダイアログを表示したいので、スレッドを作成しましたが、Can't create handler inside thread that has not called Looper.prepare()
以前に投稿された質問も見ることができますが、これを処理できます。これは私のコードです
誰かがこの問題を解決するのを手伝ってください。
android - AndroidのLooper、Handler、MessageQueueの関係は何ですか?
Looper
、Handler
およびの公式Androidドキュメント/ガイドを確認しましたMessageQueue
。しかし、私はそれを得ることができませんでした。私はAndroidを初めて使用し、これらの概念に非常に混乱しました。
android - Android ハンドラと Looper.prepare() の問題
Android用のスペースシューティングゲームを作成しています。現在、撮影方法を実装していますが、新しいショットを作成して描画しようとすると、いくつかの問題が発生します。
私はこの方法を持っています:
それはrun()メソッドから呼び出されますしかし、私はエラーを受け取ります:
ここのフォーラムで調査してみましたが、解決方法がよくわかりました。誰か助けてくれませんか?
よろしく、フレッド
java - AsyncTaskにLooperが必要なのはなぜですか?
サーバーでdb4oを更新するためにAsyncTaskを使用したいと思います。doInBackgroundメソッドで、サーバーに接続し、db4oを更新して、pendingintentsをスケジュールします。UIを変更したり、トーストを表示したりしないでください。
最初に、次のエラーが発生しました。
Looper.prepare()を追加した後、正常に動作しますが、5回の更新(AsyncTask)に対してのみです。私はこのトピックを読みました:AsyncTaskスレッドは決して死ぬことはありません(Android)、そして私は今それが失敗することはありません。6番目の更新をスローすると、アプリがクラッシュします。
Looper.loop()が必要であるというドキュメントを読みましたが、これでアプリがクラッシュします。
例:
なぜルーパーが必要なのですか?5回の更新後にアプリがクラッシュするのはなぜですか?Looper.loop()はどこでスケジュールできますか?
前もって感謝します!
android - Android:LocationManagerコンストラクターのルーパー
次の方法でLocationManagerからの通知の取得を開始する可能性があります。
ドキュメントでは、次の単語で属性について説明しています。
このメソッドで更新の受信を開始したい場合、(ルーパーの)クラスの動作をよく理解できません。
さらに、LocationManagerクラスの周りにライブラリを作成しており、通常の動作を実行する前に、他の作業を行う必要があります。私が必要としているのは、ライブラリのLocationListenerで更新の受信を開始し、いくつかの条件が確認された場合にのみ通常の動作を実行することです。
これを行うには、ユーザーが上記の方法で更新を受信し始めた場合にLocationManagerが実行する動作をシミュレートする方法を知る必要があります。
はっきりしているといいのですが。誰かが私を助けることができますか?ありがとう!