私は多くのアクティビティを持ち、ほとんどのアクティビティが複数のオブジェクトを共有するアプリケーションで作業しているため、Android Application クラスを拡張して MyApplication クラスを作成し、共有する選択したオブジェクトを保存しました。しかし、プロバイダー/ヘルパークラス内のこれらのオブジェクトにアクセスしている間、私は不快に感じます.Applicationのインスタンスを取得するには、プロバイダーでコンテキストが必要です。
そのため、MyApplication クラス内に SelectionProvider という静的クラスを作成して、選択したオブジェクトを格納することを計画しました。そうすれば、MyApplication にインスタンスを作成しなくても静的な方法でそれらにアクセスできます。
次のように静的内部クラスを持つ MyApplication クラス
class MyApplication extends Application {
public static final String TAG = "MyApplication";
public static class SelectionProvider {
private static UserObj userObj;
private static TownObj townObj;
private static StoreObj storeObj;
public static UserObj getUserObj() {
return userObj;
}
public static setUserObj(UserObj userObj) {
this.userObj = userObj;
}
public static TownObj getTownObj() {
return townObj;
}
public static setTownObj(TownObj townObj) {
this.townObj = townObj;
}
public static StoreObj getStoreObj() {
return storeObj;
}
public static setStoreObj() {
this.storeObj = storeObj;
}
}
}
それは正しいアプローチですか?そうでなければ、なぜですか?
選択したオブジェクト(内部クラスに格納されている)は、アプリケーションの全期間にわたって存在しますか、それともどこかで破棄されますか?