我需要在不同活动之间保持对对象的引用。这两个提到似乎创建了从活动到活动的新对象。这是一个问题,因为父活动获得焦点后,“子”活动中对象的更改不会保留。我的解决方案就是在子活动调用和使用的父级活动中创建一个静态getter。这是不正确的方法吗?
答案 0 :(得分:2)
如果要在活动之间共享对象的单个实例,则可以创建单个类。使用父级最活动类来实现单例的唯一问题可能是它可能违反了single responsibility principle。
答案 1 :(得分: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
添加到清单
答案 2 :(得分:0)
你应该创建一个Singleton,只要你说话就有一个实例。 (就像你的描述一样)。