2011-12-07 13 views
0

フォアグラウンドでのアクティビティがバックグラウンドでのアクティビティの通信/操作を試みることは悪いことであり、一般的にはonResume関数を使用する必要があります。アップデートを行う必要があるアクティビティへの通知

私はユーザーが「お気に入り」を追加できるように1つのアクティビティを持っています。すべての好きなもののリストを表示する別のアクティビティがあります。 DBにクエリを行い、onResumeを呼び出すたびにリストを再構築するのではなく、 "favorites_updated"のような静的フラグを持つクラスを使用していて、それが真ならば、私たちは余分な作業を行います。

これはちょっと大変だと思います。このようなことをするためのより確立された方法がありますか?

TYIA。

答えて

0

お気に入りの変更のリスナーをバックグラウンドアクティビティで作成することもできます。また、変更するとバックアクティビティに通知することもできます。

このメソッドは、onResumeに多くの変更が加えられていないため、利点があります。

+0

どうしたらうまくいくのですか? (私はAndroid環境の最初の1週間です)リスナーはアクティビティ間の参照を必要としませんか?あなたは、いくつかの擬似コード、またはその前提を説明するリンクか何かを持っていますか? – momo

+0

listener sayを作成するnotifyChage(params)メソッドを持つFavoriteChangeListner。次に、このリスナーをあなたのアクティビティに実装して、変更を実装します。 –

+0

listener sayを作成するnotifyChage(params)メソッドを持つFavoriteChangeListner。次に、このリスナーをあなたのアクティビティに実装して、変更を実装します。その後、親アクティビティでnotifyChage(params)を呼び出す必要がある場合は、リスナーと子アクティビティから登録します。できるだけ早くコードを掲載します。 [link](http://tseng-blog.nge-web.net/blog/2009/02/17/how-implement-your-own-listener-android-java/)にアクセスしてください。 –

0

あなたは常にListActivityから移動すると - > FavoritesActivityユーザーがお気に入りを変更した場合、あなたはブール

setResult (int resultCode, Intent data) 
を使用して戻って '更新' を渡し、

startActivityForResult (Intent intent, int requestCode) . 

を使用してListActivityからFavoritesActivityを起動することができ

トン場合は、ListActivitesに

onActivityResult(int requestCode, int resultCode, Intent data) 

それをretrive彼は真偽です、あなたのカーソルを再照会します。

また、FavoritesActivityで作成したSharedPreferenceを更新し、後でListActivity(静的変数と同じように)を読み取ることもできます。

+0

返信いただきありがとうございます。実際には、そのリストにアイテムを追加するアクティビティからListActivityを起動することはありません。スタティックフラグはおそらく私が得ようとしているほど近いでしょうか? – momo

+0

はい、静的変数の代わりにSharedPreferencesを使用することを検討してください。 – Freddroid

0

アクティビティを開始するときに、get/putExtrasを使用してインテントで追加のパラメータを渡します。現在の質問は、メッセージの受け渡しよりも、複数のアクティビティ間で永続的な状態を保存することに重点を置いているため、共有環境設定を静的変数と+1します。

http://developer.android.com/guide/topics/data/data-storage.html#pref http://www.balistupa.com/blog/2009/08/passing-data-or-parameter-to-another-activity-android/

0

方法notifyChageでFavoriteChangeListnerを言うのリスナーを作成します。 (params)。次に、このリスナーをあなたのアクティビティに実装して、変更を実装します。その後、親アクティビティでnotifyChage(params)を呼び出す必要がある場合は、リスナーと子アクティビティから登録します。できるだけ早くコードを掲載します。ヘルプはthisまで行ってください。

関連する問題