2013-05-21 35 views
0

我正在使用一个android应用程序,并正在寻找一种方法来建立一些全局偏好,这些偏好随后可供所有应用程序中的所有活动/类访问。这与我所知道的有些人最终在客观c编程中使用AppDelegate相似。我在网上看到的答案表明我要么扩展应用程序,要么将数据保存到SharedPreferences。我想知道是否有一种方法来结合这两种方法,以便在我的应用程序中,我可以继续调用Preferences对象的属性(如Preferences.getName()),并将数据保存到SharedPreferences中,以便在如果Android决定重新启动我的应用程序,并且我放弃了我的Preferences对象中的所有数据,我仍然可以从SharedPreferences中重新获取它并重新设置Preferences对象。任何人都可以让我知道如何做到这一点,如果它是可行的?Android全局偏好

回答

2

见我在https://stackoverflow.com/a/13673178/338479

在简短的回答,我创建了一个“单身”类来保存我的喜好,只要应用在内存里的数据依然存在。如果应用程序被系统杀死,那么singleton类将在稍后以静默方式重新加载。

通过扩展Application类也可以做到这一点,但传统观点认为这样做没有真正的优势。

+0

只是你的方法几个简单的问题。什么是易失性和同步关键字的使用?另外,我是否也可以将写作合并到此首选项对象中的sharedPreferences中?所以无论何时我实例化对象,我填满它的字段,坚持sharedPreferences。我可以通过重载方法实现吗?有没有上下文获取实例的方法意味着我将保存到文件。带有上下文参数的另一种方法意味着我将从sharedPreferences实例化?不知道我是否有意义:) –

+0

在“Singleton Pattern”上进行搜索,并且您的问题将得到详细回答,但简短的回答是,通过使用它们,您可以允许多个线程始终访问同一个对象,没有腐败或意外创建多个实例的危险。 –

+0

就写入sharedPreference而言,这正是我在应用程序中所做的(源代码来自我的简化)。或者你建议子类化SharedPreferences?我从来没有想过,但它可能工作。 –