問題タブ [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.
android - アプリケーションがバックグラウンドの場合、インターネット アクセスがブロックされます
ブロードキャストレシーバーからデータを投稿しようとしていますが、アプリが長時間バックグラウンドにあると、インターネットに接続できず、エラーが発生してログに記録されます:
同じデバイスのブラウザからサーバーにアクセスできる場合でも。アプリがフォアグラウンドにあるとき、またはアプリがバックグラウンドになるまでの数分までは正常に動作します。
android - ダイヤルしたらすぐに発信通話を終了する方法
ユーザーがダイヤルした通話を終了しようとしています。基本的に、ユーザーがダイヤルして電話をかけることができる番号を許可します。そうしないと、他のすべての通話が終了し、ユーザーはそれらの番号以外に電話をかけることができなくなります。
今問題は、私はそうするためにいくつかの方法を試しましたが、うまくいきません
私がやっていること:
私は、ユーザーが番号を呼び出したときに解雇された放送受信機を持っています
It の下で、ダイヤルされた番号を取得します。希望の番号でない場合は、終了しようとします。
on Receive メソッドで行っていることは次のとおりです。
および Endig Call メソッドも
ご覧のとおり、インターネットで見つけた4種類の方法を使用して通話を終了していますが、機能していません。現時点では、ジェリービーンズでこのコードを試しています。しかし、うまくいきません。通話を終了する方法と適切な方法を教えてください。
android - GCM メッセージを受信したが表示されない - ブロードキャスト受信結果 = CANCELLED - サービス強制停止
アプリとサーバーに GCM メッセージングを実装しましたが、すべて正常に動作しますが、すべての電話では機能しません!
主な問題は次のとおりです。
アプリを開くとGCMメッセージが表示され、想定どおりに通知が生成されますが、アプリを閉じると、(LOGCATを介して)メッセージが受信されたがキャンセルされたことがわかります->「ブロードキャストレシーバー、結果=キャンセル」。
次に、アプリ サービスをバックグラウンドで動作させることができません。「最近のアクティビティ」メニューからアプリを「閉じる」限り、バックグラウンドでも停止します(設定->アプリ->「MY_APP」->強制停止は無効になっています)。
多くの調査を行った結果、「最近のアクティビティ」タブからアプリをスワイプすると、Huawei P8 (主要なテスト デバイス) がすべてのアプリを自動的に強制終了することが原因であると考えられます。しかし、そうすると、「Facebook」や「Viber」などの他のアプリからプッシュ通知が送られてきません。
マニフェスト.xml
GCMBroadCastReceiver
GCMIntentService
私は混乱しています!原因の根本を見つけることができません。
前もって感謝します。
android - アプリが閉じているときにAndroidのBroadcastReceiverがリッスンしない
ボリューム変更イベントをリッスンする MyReceiver という BroadcastReceiver を作成しました。アプリの実行中は問題なく動作します。しかし、アプリを閉じると、ブロードキャストのリッスンが停止します。
マニフェスト ファイルに登録されているブロードキャスト レシーバーは次のとおりです。
android - 動的に登録された BroadcastReceiver がシステムによって考慮されるのはいつですか?
私の質問は、「いつ手紙を読むことができるようになるか」ではなく、「私のポストが郵便配達員にいつ気付かれるか」についてです。
Activity
ユーザーがリストを編集できるようにします。ユーザーが編集をコミットするとすぐにIntentService
が開始され、データベース ヘルパーが呼び出され、必要に応じてデータベース エントリが変更されます。
データベースが正常に更新されるとすぐに (それまでは何もクラッシュしませんでした)、データベース ヘルパーは "ok" を に書き込みSharedPreferences
、IntentService
. はIntentService
にメッセージを送信します。BroadcastReceiver
これにより、現在のデータでリストが db から再ロードされます。
はのBroadcastReceiver
内部クラスであり、Activity
に動的に登録されますonCreate()
。
リストがリロードされるまでユーザーが my にとどまっていたActivity
としても、まったく問題はありません。しかし、ユーザーが動き回り、どういうわけか方向の変化を引き起こしていると想像してください...それが私が「OK」を持っている理由ですSharedPeferences
:
ではonCreate()
、受信者を登録した後、保留中のアクションがあるかどうかを確認します。
データベースが正常に更新された場合は、データをロードして、受信者が次のメッセージを無視するようにフラグを設定するだけです。IntentService がsetIntentRedelivery(true)
.
データベースがまだ更新されていないことがわかった場合は、 からのブロードキャストを待つことにしIntentService
ます。
私が非常に不確かなことの1つは、次のことです。
システムが受信機を「稼働中」と見なすのはいつからですか? 私はそれが終わったonReceive()
後にしか呼び出せないことを知っています。onCreate()
実行中onCreate()
に IntentService がローカル ブロードキャストを起動し (「早すぎる」)、レシーバーがそれを取得できない可能性はありますか?
その後、そのリストは、ユーザーがActivity
(かなり可能性が高い) を離れ、もう一度戻るまで (そうではない可能性が高い) 更新されることはありません。
android - Google Cloud Messaging から送信されたメッセージを受信する - Android
GCM から送信されたメッセージの受信に問題があります。私WakefulBroadcastReceiver
は決して解雇されません。私は多くの助けを探しましたが、役に立ちませんでした。これで何か助けていただければ幸いです!
WakefulBroadcastReceiver
インテントサービス
マニフェスト
android - 複数のアラームのアラーム レシーバが呼び出されない
異なる特定の時間に複数のアラームを繰り返すことを実装しようとしています。問題は、Alarm Receiver がいつでも呼び出されないことです。
アクティビティ内の私のコード:
これは私のアラーム受信機です:
}
マニフェスト宣言:(アプリケーションタグ内)
上記のコードはブロードキャスト レシーバーを少なくとも 1 回実行する必要があると思いますが、logcat には何も表示されません。誰かが私に何が欠けているか教えてもらえますか?