2016-04-08 10 views
1

"A"には会話のリストが含まれています。 "B"は会話を表しています(メッセージが表示されています)。Bでも新しいメッセージを送信できます。 メッセージがBで送信されるたびにAの会話のリストを更新できるようにしたいので、アンドロイドの戻るボタンをクリックすると、Aのアクティビティのビューが更新されます。Android、以前の操作を処理する

私の問題の核心は、アンドロイドのバックボタンをクリックしたときにAからインテントを開始しないということです。この効果を得る方法はわかりません。

ありがとうございました!

+0

「私はAからインテントを開始しない」。 Aがアクティビティの場合は、インテントでアクティビティを開始する必要があります。あなたのアプリケーションの主な活動ですか? –

+4

この場合、アクティビティAが一時停止され、アクティビティBが表示されます。一度に表示できるアクティビティーは1つだけなので、アクティビティー間で通信することは意味がありません。あなたがすべきことは、アクティビティBのデータソースを更新し、アクティビティAの 'onResume()'でデータをリフレッシュ/リロードすることです。 –

+0

最適なソリューションはコンテンツプロバイダを使用しています – Pooya

答えて

1

Aがバックスタック上にある場合、Aのインスタンスがメモリ内に存在するという保証はありません。 BからAを操作する方法の質問に対する答えはではないです。

それを行うためのいくつかの正しい方法:

  • モデル(会話のリスト)ParcelableまたはSerializableある場合は、Intent経由での活動の間にそれを渡すことができます。結果をBにしてAのonActivityResultに返されたIntentから検索すると、BからAに戻すことができます。
  • データベースまたはSharedPreferencesファイルのように、モデルを永続化します。
  • Serviceにモデルを入れてください。これは、各アクティビティが永続ストレージからロードされるよりも速くなりますが、Serviceがシャットダウンしても失われないように永続化する必要があります。
関連する問題