0

私は音楽を再生するサービスを持っていると思います.また、私はこのサービスにバインドするアクティビティを持っています.このサービスが新しい音楽を開始し、イベントを発生させ、アクティビティがトーストを表示したときに、どうすればこれを行うことができますか.

Service service = new se...
BindToService();

service.OnMediaPlayerStarted(new Event(

public void run()
{

};
));

MediaPlayerStarted のようなカスタム イベントを作成したいのですが、

4

1 に答える 1

0

これは 2 つの方法で行うことができます。

1) LocalBroadcastManager を使用し、アプリケーション内でブロードキャストを送受信するためのレシーバーを記述します (重くて複雑になる可能性があるため、詳細を拡張する必要はありませんが、機能します)。

2) Handlerを使用したメッセージ パッシングを使用します(これは簡単です)。

  • メイン アクティビティでハンドラーを作成し、その参照をサービスに渡します。
  • Activity ハンドラーを使用してそれぞれのイベント ID で空のメッセージを送信し、それに応じて Activity で UI を更新します。
  • この例を参照してください。- このユーザー TimerTask と Runnables ですが、あなたの目的のために、ハンドラーを使用して空のメッセージを送信し、ハンドラーの handleMessage(Message msg) コールバックでそれらを処理します。
于 2012-06-05T07:21:29.707 に答える