0
我正在构建一个用户可以从中选择项目的菜单。他们可以在必要时编辑他们的选择。单身人士将是一个包含所有可选项目列表的类。每当新活动开放时,单身人士将拥有所有物品的正确状态。是否有必要声明Singleton访问我所有活动中的单个对象?
我问这是因为实现Serializable创建一个新的实例(尽管几乎相同)的项目。
我正在构建一个用户可以从中选择项目的菜单。他们可以在必要时编辑他们的选择。单身人士将是一个包含所有可选项目列表的类。每当新活动开放时,单身人士将拥有所有物品的正确状态。是否有必要声明Singleton访问我所有活动中的单个对象?
我问这是因为实现Serializable创建一个新的实例(尽管几乎相同)的项目。
是的,你可以使用这个单身。它会是这样的:
public class MenuData {
private static MenuData instance;
private boolean isItemASelected;
public static MenuData getInstance() {
if (instance == null) {
instance = new MenuData();
}
return instance;
}
public boolean isItemASelected() {
return isItemASelected;
}
public void setItemASelected(boolean itemASelected) {
isItemASelected = itemASelected;
}
}
但我不会推荐这个。只要您的应用程序在内存中,这些数据将一直存在。一旦你的应用被Android杀死,所有的变量将被清除,并且状态将会丢失。
如果你的菜单项是不变的,那么我建议使用SharedPreferences来存储状态。如果它们是动态的,那么使用SQL数据库。这样,即使您的应用程序被杀,这些选项也会持续存在。
我没有清楚的问题。辛格尔顿的目的是控制对象的创建,将对象的数量限制为1。 –
您可以使用单例,另一个选项是在您的主要活动中创建它,并定义BroadcaseReceiver,每次在其他活动之一上进行选择时都会触发它。 –