私は、ユーザーの所在地を取得し、その目的地の緯度と経度をブロードキャストするサービスを持っています。Androidの2つの異なるアクティビティから開始したサービスの結果にアクセスする
私はfirebaseからの新しいgeoFireエントリが入力されたときにプッシュ通知をユーザに送信できるようにするために、(バインドされたサービスとは対照的に)開始されたサービスである必要があると考えます。アプリが閉じていても半径になります。
現在、サービスはロケーションをブロードキャストするように設定されています。
ロケーションサービスが開始されたサービスであるとすれば、2つの別々のアクティビティからブロードキャストにアクセスする方法はわかりません。
私はそれが縛られたサービスであればこれを達成することができると信じていますが、私は無期限に生き続けるため、何をすべきかはわかりません。
ここにはminimal example that demonstrates my issueがあります。
具体的には、放送受信機を登録することで最初のアクティビティで表示する緯度と経度を取得できますが、別の放送受信機を登録することで2番目のアクティビティで表示する緯度と経度を取得できません。
私はAndroid's documentation on Servicesを読みましたが、まだこの問題を解決するために何をすべきかはわかりません。
Android StudioのエミュレータNexus 5X API 25 x86でこれをすべてテストしました。
UPDATE 2017年11月8日:下記のEventBusソリューションを含むようにgithubプロジェクトを更新しました。イベントバス支店にあります。マスターブランチには依然として質問に関する問題のあるコードが含まれています。ビューに
:
git clone https://github.com/Atticus29/locationServiceMCV.git
git checkout eventBus
その後、オープンAndroidStudioまたは通常どおりに実行を選択し、ビュー/のIDE。
アクティビティとサービスが同じアプリ(同じプロセス)に存在する場合、ブロードキャストの意図は必要ありません。サービスによって書かれたシングルトンを使用して、読者(この場合はあなたの活動)が読むことができます。 – m0skit0
@ m0skit0あなたは何を提案しているのですか? – Atticus29