2つのアクティビティAとBがあります。Aには、曲のリストを含むrecyclerViewがあります。私が1つのコマンドをクリックするとBに行き、それを再生し始めます。 BにはonCompletionListener()があるので、自動で曲を変更して再生します。アクティビティAに戻ると、現在再生中の曲の名前がテキストビューに表示されます。問題は、曲がバックゴルンで変更された場合、textViewを自動的に更新することができないことです。 私が教えてくれた1つの解決策は、textViewを静的にして、それをBのOnCompletionListenerから変更していますが、その効果がわかりません。それをするより良い方法がありますか? ご協力いただければ幸いです。前もって感謝します。バックグラウンドアクティビティのイベントによるアクティビティの更新
答えて
あなたは、Android、Androidのコンポーネント間の通信チャネルを作成するための最も簡単な(かつ最速の)方法で、初心者がEventBus
のようなバスを使用しているならあなただけの情報を含むクラスを作成する必要があり、あなたのアクティビティはバスに加入し、これらのオブジェクトをお互いに非常に簡単に送受信します。
これを実装するには、いくつかの方法があります。
- ハンドラ は、あなたがAにハンドラを実装し、Bにハンドラのアドレスを渡すそして、あなたはこのハンドラを使用してメッセージを送信することができます。
- BroadcastReceiver ハンドラと同じです。 Aで実装し、BroadcastReceiverのアドレスをBに渡すことができます。これを使用してBにブロードキャストを送信することができます。
- startActivityForResult startActivityForResultを使用してアクティビティBを開始できます。 AのonActivityResult関数を実装する必要があります.Bが完了したら、Aにデータを送信できます。 Bが終了したら、最後の曲データをAに送ることができます。
私はあなたを助けてくれることを願っています!その後、
ここでハンドラの使い方を教えてもらえますか?私はアンドロイドの初心者です –
ハンドラm_handler =新しいハンドラ(ルーパー、getMainLooper()){public void handleMessage(Message msg){[あなたのコード]}};このハンドラをアクティビティBに渡すことができ、BではsendMessage()を使用してメッセージを送信できます。あなたがもっと必要な場合は、私はコードブロックで別の答えを投稿することができます。 – lucasjensen
正しいコードを入力すれば –
- 1. バックグラウンドアクティビティがイベントを受け取れるように透明なアクティビティを起動する方法
- 2. フラグメント終了後のOnResumeによるアクティビティの更新
- 3. 添付ファイルによる既存のアクティビティの更新
- 4. Android:アクティビティの検出/アプリケーションの変更イベント
- 5. イベントの更新div
- 6. イベントの更新リスト
- 7. 他のアクティビティからの変更後のアンドロイド更新アクティビティのテキストビュー
- 8. 更新とアクティビティのライフサイクル
- 9. SQLiteとアクティビティの更新
- 10. 閉鎖時の更新アクティビティ
- 11. iphone SDK内のバックグラウンドアクティビティによるバッテリーの放電を減らす
- 12. 更新/イベントのページリクエストを変更する
- 13. 別のアクティビティでビューを更新する
- 14. アクティビティの意図を更新する
- 15. アクティビティ更新時にデータを更新するタブページ・フラグメント
- 16. Androidアクティビティが前回のアクティビティを更新する
- 17. Netty 4 SSEの更新イベント
- 18. MySQLの自動更新イベント
- 19. アクティビティは下から上にスライドしますが、バックグラウンドアクティビティは移動しません。
- 20. アンドロイドアプリのlistadapter onclicklistenerの更新アクティビティ
- 21. 「実行中」のAndroidスタジオの更新アクティビティ
- 22. カスタムアレイアダプタからアクティビティを更新
- 23. Textboxバインディング更新イベント
- 24. Onclickイベントでアクティビティを変更しようとしています
- 25. VBAにアクセス - 更新後のイベント
- 26. Laravel 5.1 - イベント::更新からイベント::更新に変数を渡すには?
- 27. 更新されたアクティビティのリアルタイムアップデート
- 28. MainWindowをTimer.Elapsedイベントに更新する
- 29. のWebSocketのonMessageイベントdoesntの更新コンポーネントデータ
- 30. アクティビティを再起動した後、アクティビティUIを更新する
1. Aでローカルブロードキャストレシーバを使用し、Bからブロードキャストを送信します。 または、 2. startActivityForResult()を使用してBを開始し、onActivityResult()を使用して値をAに戻します。 –
各曲に一意の識別子があると仮定すると、再生された最後の曲を戻すのが最も簡単です。最初の活動。 –