2016-07-31 15 views
0

我正在构建一个用户可以从中选择项目的菜单。他们可以在必要时编辑他们的选择。单身人士将是一个包含所有可选项目列表的类。每当新活动开放时,单身人士将拥有所有物品的正确状态。是否有必要声明Singleton访问我所有活动中的单个对象?

我问这是因为实现Serializable创建一个新的实例(尽管几乎相同)的项目。

+0

我没有清楚的问题。辛格尔顿的目的是控制对象的创建,将对象的数量限制为1。 –

+0

您可以使用单例,另一个选项是在您的主要活动中创建它,并定义BroadcaseReceiver,每次在其他活动之一上进行选择时都会触发它。 –

回答

0

是的,你可以使用这个单身。它会是这样的:

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数据库。这样,即使您的应用程序被杀,这些选项也会持续存在。

相关问题