2011-12-24 7 views
3


誰かがアプリケーションクラスの必要性を知ることができます。私は多くのブログとアプリケーションクラスについての質問を読んでおり、それらのすべてがグローバル状態変数の保存に使用されていると言いました。
現在、私の現在のアプリケーションでは、継承を使用して多くの変数の状態も保存しています。私は基底を持っていますアクティビティ私はすべてのリスナと他のすべてのアクティビティで継承することができる静的変数を定義したクラスです。いくつか:)アプリケーションクラスの必要性/用途Android?

おかげ

答えて

2

アプリケーションクラスは、基本的にアプリケーションの寿命のために生きてシングルトンですがある場合

は今、私に私のシステムの欠点を教えてください。その事実を考えると、グローバルを共有するための簡単な場所です。もう一つは、バックグラウンドモードのデータベースアクセスなどに役立つアプリケーションコンテキストを取得することです。

データを共有する手段として使用する必要はありません。それを行う簡単な方法の一つです。

実際にあなたが行っているようにアプリケーションの格納場所としてアクティビティを使用することは実際には安全ではありません。メモリが足りない、またはあなたのアプリが長時間実行された場所では、アクティビティが破棄される可能性がありますが、アプリケーションインスタンスは破棄されません。これにより、あなたの活動が再開され、基本活動の全ての統計が、それらが占有されると予想されるときに消去されます。変数がアプリケーションの存続期間中存続することを保証するには、それらをアプリケーションクラス(またはアプリケーションクラスによってインスタンス化されたクラス)に入れます。彼らが活動の生涯にわたって生きていることを保証したいなら、あなたは現在あなたがしていることをすることができます。アクティビティが画面に表示されないときはいつでも、OSがそれを強制終了せず、後で/ユーザがそのアクティビティを再び開いたときに再起動するという保証はないことを覚えておいてください。

スタティックがアクティビティに保存され、アクティティが破壊され再現されて生きていくようにするには、それも可能です。 See the activity documentation;永続状態を保存するセクションを参照してください。活動状態が終了するとその状態を保存し、後で再作成するときに復元する必要があります。

データが長生きする必要がある場合は、データをファイルまたはデータベースに保存します。

+0

私はnoobです、私のデザインもシングルトンとして基本クラスを作成します。だから私はこの点を優位性とは考えていない。私のデザインがアプリケーションクラスよりも不利な点を指摘できますか?私のデザインを変えるかどうかは天気を決めることができるように。 –

+0

申し訳ありませんが、インプリメンテーションが良いかどうかを伝えるための十分な情報がありません。 –

+0

k。私の現在のデザインでは、すべての静的変数が定義されたベースアクティビティとすべての共通リスナを持っています。今、私は新しいアクティビティを作成したいときは、このベースアクティビティを拡張する必要があります。 –

関連する問題