2011-01-20 16 views
1

私のアプリケーションには、ネットワーク部分とGUIの2つの部分が含まれています。ブラウザのように動作します。ユーザーがサーバーから何らかの情報を要求し、サーバーが何らかのビューを表すデータを返した後、GUIがそれを表示します。Android、ビューを維持

今はネットワーク部分をサービスとして実装しています。これは、すべてのビューを単独で構築して保持します。アクティビティが作成されると、ネットワークパーツはコンテンツビューを最後に受信したビューに設定します。

これはかなり単純です。すべてのビュー階層を再作成してすべての状態を保存する必要はありません。

サービスのコンテキスト内でビューを作成できますが、アクティビティの起動の間にそれらを保持できます。アクティビティが破棄されて作成されたときにビューのバインドを解除して再バインドできますか?アクティビティのコンテキスト(例:Spinner、ポップアップダイアログを作成する)が必要なビューもあります。

したがって、作成後にビューのコンテキストを変更する方法はありますか?

私は非常にAndroidのプログラミングの新機能ですので、これを行うにはもっと良い方法があるかもしれません(画面の回転が発生したときに、ビューの階層とすべての状態を保ち、例えば)。

答えて

1

私はサービスとしてネットワーク部分を実装しました。それはすべてのビューを構成して、それ自体を保持します。」。

ビュー階層を持つ/管理するのはActivityのみです。したがって、Activityは、Service(または何とかServiceによって通知される)にデータを表示してから、そのビューを更新する必要があります。はい、場合によっては状態管理が必要ですが、利益は得られます。ハッキングなく意図どおりに機能します。言い換えれば、OSを騙そうとしないで、代わりにAndroidのベストプラクティスに対応しようとする。

+0

ビューを再利用する方法はありません。アクティビティの開始時に再作成する必要がありますか? – note173

+0

私のプロジェクトやチュートリアルやオープンソースプロジェクトの残りの部分では、常にビューは 'Activity'(サブ)クラスのフィールドです。したがって、 'Activity'の新しいインスタンスが作成されると、その時点ですべてのビューも作成されます。 –

関連する問題