Android 使用static而不是parcelable/serialize——这不好吗?
我需要在不同的活动之间保留对对象的引用。这两次提及似乎在不同的活动中创造了新的对象。这是一个问题,因为一旦父活动获得焦点,对“子”活动中对象的更改就不会持续。我的解决方案就是在子活动调用并使用的父most活动中创建一个静态getter。这样做是不是不正确 如果要在活动之间共享对象的单个实例,可以创建一个singleton类。使用父most活动类实现单例的唯一错误可能是它可能违反了。通过将对象作为Android 使用static而不是parcelable/serialize——这不好吗?,android,Android,我需要在不同的活动之间保留对对象的引用。这两次提及似乎在不同的活动中创造了新的对象。这是一个问题,因为一旦父活动获得焦点,对“子”活动中对象的更改就不会持续。我的解决方案就是在子活动调用并使用的父most活动中创建一个静态getter。这样做是不是不正确 如果要在活动之间共享对象的单个实例,可以创建一个singleton类。使用父most活动类实现单例的唯一错误可能是它可能违反了。通过将对象作为应用程序派生类中的字段,可以使其在整个应用程序生命周期中保持不变 public class MyApp
应用程序派生类中的字段,可以使其在整个应用程序生命周期中保持不变
public class MyAppication extends Application {
private Object mMyData;
public setData(Object data) {
mMyData = data;
}
public Object getData() {
return mMyData;
}
}
然后((MyApplication)GetApplication()).setData
或getData()
通过这种方式,您可以在应用程序内交换数据,因为MyApplication
将始终存在
您还必须将myapplication
添加到manifest您应该创建一个Singleton,无论何时与它对话,它都有一个实例。(就像你描述的那样)
这里是我前面提到的一个:为什么要对上下文进行静态引用。我可以将一个活动传递给你的单身汉,然后改变方向,活动会被销毁,但你的上下文字段会保存它。此外,您可能能够使用不再是validIt的私有引用的上下文。该类是具有一个全局上下文的单例,如果这成为问题,则取决于您在该类中对上下文的使用。对该单例的引用将随活动一起销毁。下一次,当您请求单例时,您将被迫更新上下文。啊,所以它不是100%的单例。我明白你的意思。对单例的引用保存在一个静态字段中,因此引用不会随活动一起被破坏。您的代码将泄漏一个被方向更改破坏的活动。一种修复方法是在singleton类中存储context.getApplicationContext()
。