問題タブ [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 - BroadcastReceiver での依存性注入
シングルトンをBroadcastReceiverに注入するのは良い習慣ですか?
より具体的には、次のようなシングルトンがあると仮定します。
そして、放送受信機があります:
実際には機能しますが、パフォーマンスと、その状況が引き起こす可能性のあるメモリ リークについてはわかりません。インジェクションが引き起こす可能性のあるパフォーマンスとラグについて何か考えはありますか?
android - 複数回実行するブロードキャスト受信機
私がBroadcastReceiver
何度も登録されるという問題があります。
私のアプリケーションにはCountDownTimer
、Application
オブジェクトが含まれています。このクラスに含まれている理由は、一度開始すると、カウントダウン中にユーザーが他のアクティビティに移動できる必要があるためです。
CountDownTimer
がカウントダウンしたら、LocalBroadcast
特定のActivity
が受信するように登録されている を起動します。
onReceive
複数回呼び出されることを除けば、すべて正常に機能します。たとえば、ユーザーが Activity1 で を開始しCountDownTimer
、Activity2 に移動してから Activity1 に戻った場合、onReceive
が 2 回呼び出されます。
launchMode
アクティビティの が に設定され、SingleInstance
がnoHistory
に設定されtrue
ます。これは、登録するアクティビティのインスタンスを 1 つだけ、できればレシーバーを 1 つだけ持つという私の試みです。
これは私CountDownTimer
のApplication
オブジェクトです:
これは、受信機を初期化、登録、および登録解除する方法です。
これは私の意図ですLocalBroadcast
:
In onCreate
iでは、 がクラスCountDownTimer
で実行されている場合にのみ次を呼び出します。Application
.
私の質問は、一度に登録された受信者だけが存在することを確認するにはどうすればよいですか?
実行中にユーザーがアクティビティを何度でも起動できるようにしたいのですが、CountDownTimer
実行は 1 回だけonReceive
です。
android - ブロードキャスト レシーバを使用したサービスを使用した Android Sip 着信コール
Hai Every one 実際に、SIP ベースのインターネット経由で音声通話を行うことをサポートするアプリケーションを作成しようとしています。ここではネイティブ sip を使用しています。着信通話の問題に直面していました。しかし、着信中は電話に出ることができません親切に助けてください
ここに、ブロードキャスト レシーバー ファイルを添付しました。ブロードキャスト レシーバー ファイル
ここに、受信画面のソースコードを添付しました
これが私のエラーログです
親切に私が解決するのを手伝ってください
android - ブロードキャスト レシーバからブロードキャスト インテントを受信中にエラーが発生しました
ブロードキャスト レシーバーがあり、onRecive で Asynctask を実行し、実行時に preExecute でダイアログをビジー インジケーターとして表示します。実行時に AsyncTask が実行されると、以下の logcat エラーが発生します。そのエラーを修正するために、コンテキストへの参照として getApplicationContext() を asyncTask のコンストラクターに渡そうとしましたが、それでも同じエラーが発生します
そのエラーを修正する方法を教えてください
コード:
ログキャット:
android - フォアグラウンドにないアクティビティにブロードキャストを送信する
CountdownTimer を持つバックグラウンド サービスがあります。CountdownTimer がカウントダウンすると、アクティビティにブロードキャストを送信します。CountdownTimer がカウントダウンすると、Activity にアラートが送信され、サービスを停止して受信者の登録を解除できます。
通常のレシーバーの登録解除メソッドを onStop と onPause から、"timer_finished" でブロードキャストを受信したときに呼び出す独自のメソッドに移動しました。これは、登録を解除せずにアクティビティから移動できるようにするためです。
ユーザーが現在アクティビティを表示している場合、すべて正常に機能します。ユーザーがアクティビティから離れた場合、CountdownTimer は引き続き実行されますが、アクティビティはブロードキャストを受信していません。
アクティビティが最終ブロードキャスト「timer_finished」を受信するようにするにはどうすればよいですか?
.
android - バックグラウンドでの Android 実行プロセス
BroadcastReceiver と WakefulServiceIntent を使用してアプリケーションのメソッドを 10 分ごとに呼び出すアプリケーションを作成しています。問題は、それを呼び出す場合としない場合があることです。アプリがバックグラウンドで実行されていたり、画面がオフになっている場合でも、10 分ごとにこのメソッドを呼び出す必要があります。私の現在のコードは以下です。タイマーを開始するために AlarmManager を使用すべきではありませんか? AlarmManager は正確ではないと聞いたことがありますが、どこまでも不正確なので、鳴らないのですか?
AlarmManager の開始コード:
BroadcastReceiver クラス:
}
WakefulIntentService クラス:
}
android - フラグメント画面アンドロイドでアクティビティメソッドを更新するには?
フラグメント アクティビティにメソッドがあり、そのメソッドがトリガーされる場合は、フラグメント listView を更新する必要があります。データベースを扱っています。特定のユーザーのデータベースをクリアしている場所で、フラグメントを更新します。
問題は、ユーザーが同じ画面にいる場合、フラグメントアクティビティメソッドがトリガーされた場合にフラグメントリストビューを更新する方法ですか? アクティビティに戻る必要があり、もう一度同じ画面に戻る必要がある場合にのみ機能します。
コードは次のとおりです。
FragmentExpertLiveChat:
電話がパフォーマンスを行わずに FragmentExpertLiveChat 画面にあり、アクティビティのメソッドが呼び出された場合、行を更新する方法は? 放送受信機を使用する必要がありますか? はいの場合、どこで、どのように?