在我一直在构建的应用程序中,我们相当依赖于SharedPreferences,这使我思考了访问SharedPreferences时的最佳实践。例如,许多人说通过此调用可以访问它:
PreferenceManager.getDefaultSharedPreferences(Context context)
但是,这似乎很危险。如果您有依赖于SharedPreferences的大型应用程序,则可能会有密钥重复,尤其是在使用某些也依赖SharedPreferences的第三方库的情况下。在我看来,更好的使用方法是:
Context.getSharedPreferences(String name, int mode)
这样,如果您的类严重依赖于SharedPreferences,则可以创建仅由您的类使用的首选项文件。您可以使用该类的全限定名来确保该文件很可能不会被其他人复制。
同样基于此SO问题:是否应在UI线程之外完成对SharedPreferences的访问?,似乎应该从UI线程中完成对SharedPreferences的访问。
Android开发人员在其应用程序中使用SharedPreferences时,还应注意其他最佳实践吗?
如果您有依赖于SharedPreferences的大型应用程序,则可能会有密钥重复,尤其是在使用某些也依赖SharedPreferences的第三方库的情况下。
图书馆不应使用该特定名称SharedPreferences
。默认值SharedPreferences
仅应由应用程序使用。
这样,如果您的类严重依赖于SharedPreferences,则可以创建仅由您的类使用的首选项文件。
当然欢迎您这样做。在应用程序级别,我不会这样做,因为主要原因SharedPreferences
是要在应用程序的各个组件之间共享它们。开发团队在管理该名称空间时应该没有问题,就像他们在管理类,程序包,资源或其他项目级内容的名称时应该没有问题一样。此外,默认设置SharedPreferences
是您PreferenceActivity
将使用的默认设置。
但是,回到您的库, 可重用的
库应SharedPreferences
仅为其库使用一个单独的库。我不会将其基于类名,因为那样的话,您就可以远离破坏您的应用程序了。而是选择一个唯一的名称(例如,基于库名称,例如"com.commonsware.cwac.wakeful.WakefulIntentService"
),但要稳定。
似乎应该从UI线程完成对SharedPreferences的访问。
理想情况下,是的。我最近发布了一个SharedPreferencesLoader
有助于解决此问题的工具。
Android开发人员在其应用程序中使用SharedPreferences时,还应注意其他最佳实践吗?
不要过度依赖他们。它们存储在XML文件中,而不是事务性的。数据库应该是您的主要数据存储,尤其是对于您确实不想丢失的数据。
问题内容: 当前,正在讨论具有单个sql连接体系结构的优缺点。 为了详细说明我们正在讨论的是,在应用程序创建时打开一个sql连接,在应用程序关闭或错误关闭该sql连接时。根本不创建另一个连接,而只使用那个与数据库进行通信。 我们想知道社区的想法。 问题答案: 一旦您在不确定的时间内不再需要连接,请立即将其关闭。这样,连接将返回到连接池(如果启用了连接池),并且可以被其他人(重新使用)。 (连接是昂
问题内容: 在研究JSON与XML的问题时,我遇到了这个问题。现在,选择JSON的原因之一是Java的易于转换,即使用。现在,从安全角度来看,这立即使我感到潜在的问题。 因此,我开始对JSON的安全性方面进行研究,并在此博客文章中就JSON的安全性不如人们认为的那样进行了研究。这部分突出: 更新: 如果您正确地执行JSON 100%,那么您只会在顶层拥有对象。数组,字符串,数字等都将被包装。然后,
问题内容: 对于我的Web应用程序(PHP / MYSQL),我显示了一个项目列表,并在每行显示一个链接以删除该项目。现在,链接是 如果我想改用POST …我该怎么做(这是一个动态生成的列表)?我可以不使用表格发送POST数据吗? 或者,对于每个项目,我都要做: 并设置提交按钮的样式使其看起来像原始链接? 我不熟悉php CURL或REST,它们会帮助解决这个问题吗? 问题答案: 通常,让GET请
问题内容: 多线程Java应用程序中进行进程间通信的最佳方法是什么? 它应该是高性能的(因此请不要使用JMS),易于实现且可靠,以便对象和数据只能绑定到一个线程? 任何想法欢迎! 问题答案: 假设场景1是JVM,那么实际上应该是多个线程,尤其是各种Queue实现,都是java.util.concurrent。但是,在此之上的抽象可能很好,Jetlang看起来非常有趣,轻量级的Java消息传递。
本文向大家介绍Java注释的最佳做法。,包括了Java注释的最佳做法。的使用技巧和注意事项,需要的朋友参考一下 Java支持单行,多行注释和文档注释。文档注释由javadoc工具理解,可用于创建基于HTML的文档。以下是在Java中使用注释时的最佳实践。 每当您希望生成其文档时,请使用文档注释。 多行注释用于注释掉未使用的代码。 最好在代码中使用单行注释,并且注释应该足够有意义以展示业务逻辑的目
问题内容: 我想知道构建和存储ID的最佳做法是什么。几年前,一位教授以社会保险号为例,向我讲述了身份证明系统构造不佳的危险。特别是,由于SSN没有错误检测功能,因此无法分辨9位数字的字符串和有效的SSN之间的区别。现在,政府机构需要“姓氏+ SSN”或“生日+ SSN”之类的信息来跟踪您的数据并确保对其进行验证。另外,根据您的出生地,您的社会保险号是可以预测的。 现在,我正在建立一个用户数据库…,