2

異なるアクティビティ間でオブジェクトへの参照を保持する必要があります。上記の 2 つの言及は、活動から活動へと新しいオブジェクトを作成しているようです。親アクティビティがフォーカスされると、「子」アクティビティのオブジェクトへの変更が保持されないため、これは問題です。これに対する私の解決策は、子アクティビティが呼び出して動作する親アクティビティに静的ゲッターを作成することでした。これは間違った方法ですか?

4

3 に答える 3

3

アクティビティ間でオブジェクトの 1 つのインスタンスを共有する場合は、シングルトン クラスを作成できます。最も親のアクティビティ クラスを使用してシングルトンを実装することの唯一の問題は、単一責任の原則に違反する可能性があることです。

于 2012-04-09T16:27:52.793 に答える
0

Applicationオブジェクトを派生クラスのフィールドにすることで、アプリケーションのライフサイクル全体でオブジェクトを永続化できます。

public class MyAppication extends Application {

private Object mMyData; 

public setData(Object data) {
    mMyData = data;
}

public Object getData() {
      return mMyData;
}

}

その後((MyApplication)getAppllication()).setData、またはgetData()

MyApplication常に存在するため、この方法でアプリケーション内でデータを交換できます。

MyApplcationまた、マニフェストに追加する必要があります

于 2012-04-09T16:29:11.467 に答える
0

シングルトンを作成する必要があります。これには、話しかけるたびに単一のインスタンスがあります。(あなたの説明のように)。

これは私が以前に作ったものです: https://stackoverflow.com/a/6539080/413127

于 2012-04-09T16:29:15.013 に答える