使用静态而不是parcelable / serialize - 这是不是很糟糕?

时间:2012-04-09 16:21:41

标签: android

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

3 个答案:

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

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

您还必须将MyApplcation添加到清单

答案 2 :(得分:0)

你应该创建一个Singleton,只要你说话就有一个实例。 (就像你的描述一样)。

这是我之前提到的:https://stackoverflow.com/a/6539080/413127