2

我需要在不同活动之间保留对对象的引用。这两个提到似乎从一个活动到另一个活动创建了新的对象。这是一个问题,因为一旦父活动获得焦点,对“子”活动中对象的更改就不会持续存在。我对此的解决方案只是在子活动调用和使用的最父活动中创建一个静态吸气剂。这是不正确的方法吗?

4

3 回答 3

3

如果你想在活动之间共享一个对象的单个实例,你可以创建一个单例类。使用最父活动类来实现单例的唯一错误可能是它可能违反单一责任原则

于 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()).setDatagetData()

这样您就可以在应用程序内交换数据,因为MyApplication将始终存在。

您还必须添加MyApplcation到清单

于 2012-04-09T16:29:11.467 回答
0

您应该创建一个 Singleton,每当您与之交谈时,它都有一个实例。(就像你的描述一样)。

这是我之前做的一个:https ://stackoverflow.com/a/6539080/413127

于 2012-04-09T16:29:15.013 回答