1

私のアプリケーションには、ネットワーク部分と GUI の 2 つの部分が含まれています。ブラウザのように機能します。ユーザーがサーバーに情報を要求し、サーバーがビューを表すデータを送り返し、GUI がそれを表示します。

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

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

しかし、問題があります - サービス コンテキスト内でビューを作成できます。アクティビティの起動間でビューを保持できます。アクティビティが破棄されて作成されたときにビューをアンバインドおよび再バインドできますか? ただし、一部のビューにはアクティビティ コンテキストが必要です (例: ポップアップ ダイアログを作成するスピナー)。

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

私はAndroidプログラミングに非常に慣れていないので、これを行うためのより良い方法があるかもしれません(タスクは、たとえば、画面の回転が発生したときに、アクティビティが破棄および再作成されたときにビュー階層とすべての状態を維持することです)。

4

1 に答える 1

1

「すべてのビューをそれ自体で構築および保持するネットワーク部分をサービスとして実装しました。」と間違った方向に進んでいると強く信じています。

Activityビュー階層を持つ/管理することが意図されているのはこれだけです。そのため、 は にデータを表示Activityするように依頼するService(または から何らかの方法で通知を受けるService) 必要があり、ビューを更新するだけです。はい、場合によっては状態管理が必要になりますが、得られるメリットは、ハッキングなしで意図したとおりに機能することです。つまり、OS をだまそうとするのではなく、Android のベスト プラクティスに対応するようにしてください。

于 2011-01-21T08:43:33.327 に答える