在 Android 中,在应用程序的整个持续时间内保留从应用程序上下文创建的 SharedPreferences 对象是否存在问题?
In Android is there an issue holding on to a SharedPreferences object created from the application context for the whole duration of the app?
感谢阅读。我从应用程序上下文创建一个 SharedPreferences 对象:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
在单例应用程序的生命周期中使用此 prefs 对象是否存在问题 class?还是根据需要抓取对象更好?
我不认为保留 SharedPreferences 实例有任何真正的危害,但我确实认为这是一种糟糕的风格。
一般来说,您应该为变量提供尽可能小的范围 - 在您需要它们的地方实例化它们,并在您不再需要它们时尽快摆脱它们(让它们超出范围)。
SharedPreferences 已经是单例 - 您无需复制它。
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
以上代码本身是一种为特定应用程序获取共享首选项对象的单例方法。
因此建议使用局部变量(用于块或方法)并通过上述调用在需要时获取访问权限,进行必要的操作并留在那里。
感谢阅读。我从应用程序上下文创建一个 SharedPreferences 对象:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
在单例应用程序的生命周期中使用此 prefs 对象是否存在问题 class?还是根据需要抓取对象更好?
我不认为保留 SharedPreferences 实例有任何真正的危害,但我确实认为这是一种糟糕的风格。
一般来说,您应该为变量提供尽可能小的范围 - 在您需要它们的地方实例化它们,并在您不再需要它们时尽快摆脱它们(让它们超出范围)。
SharedPreferences 已经是单例 - 您无需复制它。
PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
以上代码本身是一种为特定应用程序获取共享首选项对象的单例方法。
因此建议使用局部变量(用于块或方法)并通过上述调用在需要时获取访问权限,进行必要的操作并留在那里。