私はこの例に基づいてメディアプレイアプリを開発しています:How to design activity-service interaction for a simple mp3 player?実行中のサービスからデータを要求する最善の方法は何ですか?
それは問題なく動作しますが、私はオンデマンドでサービスからデータを要求する方法がわかりません。具体的には、ソングの位置をプログレスバーで更新して、サービスがその情報をクライアントのアクティビティに戻すことができるようにします。更新は1秒に1回発生します。
オンデマンド(つまり、アクティビティが表示されている場合のみ)であるため、ブロードキャストはおそらく解決策ではありません。
これまで知っていたことから、私はメッセンジャーを使うことができました。サービスをバインドすることもできました。
与えられた状況では、どのようなものが最適でしょうか。更新頻度は1秒ですか?
追加:私の知る限りでは
それがバインドされたときに、サービスが活動を停止します。これは、もちろん、私が音楽プレーヤーで欲しいものではありません。私は、サービスをバインドし、startService()を使用してインテントでコマンドを送信することを試みました。これは正常に動作するようですが、それは賢明なアプローチですか?私がこれを行うのは、startServiceによって開始されたときにアクティビティが停止した後にサービスが継続して生き続けるからです。
ありがとうございました。私はMusic Playerのソースを調べることを考えなかった。私は縛られたサービスの生涯に関する追加の質問で私の元の投稿を更新しました。 – marlar
私の答えも更新しました。 –
さて、もう少し明確になっています。それでも、ユーザーが携帯電話をポケットに入れて長時間聞く場合のように、サービスが一時停止して最終的に死亡したとすると、サービスも停止することはありませんか?それとも私が誤解したことですか? – marlar