問題タブ [localbroadcastmanager]
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 - マニフェストで定義されたレシーバーが LocalBroadcastManager で使用するとブロードキャストを受信しないのはなぜですか?
数日前、単一のアプリケーション内でブロードキャストを送信するためのより優れたメカニズムがあることを読みましたLocalBroadcastManager
。
うまく機能します (標準の放送と同じように..)。しかし、昨日、マニフェストで定義されているレシーバーにブロードキャストを送信できないことがわかりました(一時的に標準のアクティビティのsendBroadcast
メソッドを使用するように切り替えたところ、機能しました)。
私がこれを必要とする理由(より好ましい方法があれば修正してください)は次のとおりです。
ファイルをダウンロードしたいとしましょう。サービスを使用します。これは、Android が私たちに求めている方法だからです。OK、今度はアクティビティの進行状況を表示 (および定期的に更新) したいと思います。したがって、サービスは私のアクティビティにブロードキャストを送信し、アクティビティはそれらを受信するために登録する必要があります。ブロードキャストを処理するための推奨される方法は、 に登録しonResume()
、 に登録解除することonPause()
です。ここで、ユーザーがプログレスバーがゆっくりと移動するのに飽きて、ホームを押して別のことをしたとします。後で彼は戻ってきて、ダウンロードの現在のステータスを見たいと思っていますが、彼がアプリケーションを離れた瞬間にブロードキャストから登録を解除したことをどのように彼に伝えることができますか?
そのため、マニフェストで定義されたレシーバーを使用して、常にブロードキャストを受信して永続的に保存できるようにし (共有設定、データベースなど)、アクティビティが最新のブロードキャストが表示されたときに再構築できるようにします。
ただし、このルーチンが推奨されていないのか、それともなぜLocalBroadcastManager
許可されていないのかはわかりません。
android - PendingIntent を使用したグローバル ブロードキャストまたはローカル ブロードキャスト
IntentService でバックグラウンド タスクを実行します。(NotificationManager を使用して) 通知バーに進行状況を表示し、誰かがその通知をクリックした場合にタスクをキャンセルしたいと考えています。
ブロードキャストサービスで正常に実装しました。しかし、localBroadcast でも同じことができるのではないかと考えていました。
「registerReceiver」を「LocalBroadcastManager.getInstance(this).registerReceiver」に変更すると、コードが機能しません。保留中の意図で localbroadcast を使用できない理由を教えてください。
ありがとう、
現在、私のコードは次のとおりです。
android - 逆方向 BroadcastReceiver 送信者
ここで、ブロードキャスト レシーバーとセンダーを使って何かを間違えました。おそらく、別の目のセットが役立つでしょう。
受信アクティビティへの変更をブロードキャストするはずの光センサーがあります。
ここに LightSensor.java があります
次に、私の Record.java は lux へのこれらの更新を受け取ることになっています。
送信IDと受信IDの問題だと思いますが、よくわかりません。Record アクティビティがブロードキャストを受信したら、TextView tvSensorLightLux を更新するか、少なくとも LightSensor.java からの Lux 値を Log.d する必要があります。
android - LocalBroadcastManager は、イベントが送信された順序でイベントを配信しますか?
アクティビティ A とサービス S があります。これらは LocalBroadcastManager を介して通勤します。
S が sendBroadcast を 2 回呼び出して、2 つのメッセージ M1 と M2 を順番に呼び出した場合、A は M2 の前に M1 を取得しますか?
ありがとう、
android - ハンドラーを LocalBroadcastManager.registerReceiver(...) に渡す方法
Android はregisterReceiver()
、Handler
. を使用する場合LocalBroadcastManager.registerReceiver()
、 を取るメソッドはありませんHandler
。なんで?Handler
ブロードキャストを処理するを提供するにはどうすればよいですか?