2012-01-02 19 views
1

アクティビティA、アクティビティB、およびオブジェクトCがあります。アクティビティAからアクティビティBを開始する必要があります。使用可能なアクティビティBは、ロケーションオブジェクトで通知されなければなりません。データ/モデルが変更されたときにビュー/アクティビティを通知する

android dosentがアクティビティ参照を保持できるので、オブジェクトCがアクティビティBにどのように通知できるかわかりません。

答えて

0

ユーザーの場所をバックグラウンドで検索するAsyncTaskを作成します。

完了したら、UIを更新したり、ユーザーに通知を作成したりすることができます。

1

Bound Serviceを実装します。あなたの位置情報は、このサービス内(もちろん、別のスレッド上)に取得され、サービスにバインドされるときにアクティビティB内で取得されます。

0

Java ObserverクラスとObservableクラスを使用します。
データオブジェクト(モデル)でObservableクラスを拡張することにより、前記データモデルの変更をリッスンするオブザーバを割り当てることができます。データが変更されると、オブザーバに自動的に通知され、update()メソッドが起動されます。

update()メソッドは、データの変更によって影響を受けるビューを更新するコードを配置するための明白な場所です。これは、ビューとデータモデルの間のリンク(通常はAndroidアクティビティ)が行われる場所です。 ObserverクラスとObservableクラスを使用することの美しさは、データモデル、ビュー、コントローラ(ビューを更新するActivity)がすべて分離されていることです。つまり、データ・モデルを使用することができます。ビューを変更すると、データ・モデルが破損することはありません。逆もまた同様です。これにより、アプリをはるかに簡単に理解でき、後で更新することが容易になります。

ここに簡単なコード例を示します。http://www.ootpapps.com/eclipse_projects/ObserverExample.zip

関連する問題