問題タブ [android-broadcastreceiver]
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.
java - レシーバーをインスタンス化できません: クラスにゼロ引数がありません
すでにいくつかの答えがあることは知っていますが、私は Android プログラミングの初心者であるため、それらをよく理解していません。次のコードを使用してレシーバーをインスタンス化しようとしました。
しかし、うまくいきませんでした。logcat は次のように述べています。
MainActivity.javaのコードの一部を以下に示します。
この質問は簡単に聞こえるかもしれませんが、このエラーを解決する方法が真剣にわかりません。私はこれを読んだことがあります(これはちょっと無効だと思います-空のコンストラクターはありません)と他のオンラインチュートリアルの束を読みましたが、まだ取得できません。どんな助けでも大歓迎です:)
android - 自動 OTP 検証ロリポップ
OTP の自動検証に取り組んでいます。lollipop より前のバージョンでは問題なく動作していますが、5.0 以降では動作しません。チュートリアルのコードを試してみました。コードは次のとおりです。
着信SMS.java
MainActivity.java
lollipop以降のデバイスで機能しないのはなぜですか?
android - PushWoosh カスタム プッシュ ブロードキャスト受信者のアクティビティへの意図により、エクストラが null になる
カスタム プッシュ ブロードキャスト レシーバーから [こちら][1] で指定されたアクティビティにバンドルを送信しています。
これは、エクストラでインテントを起動するようにコードを変更した方法です。
通常のレシーバーは正常に動作しており、onNewIntent を正しく起動していますが、カスタム レシーバーは null エクストラを表示しています。
android - 音楽アプリの Android バウンド サービスと開始済みサービス
サービス アーキテクチャを深く掘り下げようとしています。
テスト目的で、音楽アプリを作成しています。
間違いなくサービスで音楽を再生する必要がありますが、どのようなコミュニケーションを使用するのでしょうか? 私が知る限り、サービスはバインドまたは開始できます (または両方を同時に)
まず、ソースを再生/停止/一時停止/設定する必要があります...
次に、音楽プレーヤーが開いている場合、進行状況、バッファリングなどのイベントについて UI に通知する必要があります...
これについての私の考えはここにあります。
バウンドサービスとスターテッドサービスを混在させることを考えています。
曲は UI からしか設定できず、一時停止/再生/停止/シークも可能な限り、バインダーを使用して UI からサービスとの通信を選択します。(アクティビティ内でサービスをバインドし、バインダーを元に戻してサービスと通信します)
サービスからのトラック完了、次のトラック、現在のトラック位置などの通知。Broadcast receiver
複数の関心のあるコンポーネントである可能性があるため、このような通知を送信するために を使用することにしました。
だから私の質問は
- 音楽プレーヤー サービスの通信 (バウンドまたはブロードキャスト) の最適な選択は何ですか?
- システムは、サービスの種類をどのように認識しますか? つまり、サービスが最初にメソッド
bound
を呼び出してバインドする必要がある場合でも、それをバインドする必要があります。startService
メソッドが1つでもbindService
呼び出された場合、それはバインドされたサービスと見なされ、メソッドが呼び出されると強制終了されるということunbind
ですか? LocalBroadcastManager
サービスとの通信に意味がありますか?LocalBroadcastManager
アプリごとにローカルである限り、バインドされたサービスを使用しないのはなぜですか? 他のアプリがイベントに関心がある場合、グローバル ブロードキャストは理にかなっています。
このメカニズムを理解するのを手伝ってください。
android - Android で Media Mounted/Removed イベント用に動的に作成されたレシーバー
アクティビティが表示されている間、メディアがデバイスにマウントまたは削除されたときに通知されるようにしたいと思います。残念ながら、これらの通知を受け取ることができませんでした。私が入手できるのはfoo!
、簡単なテストとして作成したものだけです。
onReceive
デバイスからメディアを取り出したときに が呼び出されないのはなぜですか?
私は真新しいを作成してMyReceiver.java
で定義しようとしましたAndroidManifest.xml
が、それもうまくいきませんでした。
android - 最後にブロードキャストされたイベントを取得する
残念ながら、すべてのイベントが粘着性があるわけではありません。では、レシーバーなしでブロードキャストされたイベントを取得する方法はありますか?
「ACTION_USER_PRESENT は起動後 210580 ミリ秒で最後にブロードキャストされました」のようなものが必要です。
java - ブロードキャスト レシーバーとメモリ リーク
私のアプリでは; db をローカルとサーバーの両方で管理する必要があるため、すべてのサービスでネットワーク接続の変更を受け取りたいと考えています。
私はBaseConnectivityService
次のように接続変更のための受信機を持っているものを作りました:
BaseConnectivityService
ここで、すべてのサービスを;で拡張するとします。そのシステムは接続の変更を通知する目的でサービスをメモリに保持するため、メモリリークが発生しますか?
このスレッドを読みました。これはやや似た質問です。マーク・マーフィーがそこに書いているように:
Android がプロセスを終了するまで、BroadcastReceiver はコンポーネントを RAM に (たとえ破棄されたとしても) 保持するため、メモリ リークが発生します。
私のシナリオに適用できますか? はいの場合、メモリ リークを回避し、ネットワーク接続の変更を通知するための適切なソリューションは何ですか?