在Android实用程序类中,我想在类中获取系统首选项值,但我没有那里的上下文,因为调用它的类也没有上下文。我发现对于Resources,可以使用静态 Resources.getSystem()函数。在没有上下文的情况下获取系统首选项有没有类似的方法?

我的班级不是活动也不是服务。这是一个实用工具类。如果需要可以提供更多信息。

有帮助吗?

解决方案

你必须向它发送一个上下文 - 不要试图逃避你的责任。 :)您的实用程序类必须在某个级别由活动或服务调用,并且您将通过每个方法调用将该Context一直传递到该行。我知道这很烦人,我必须自己做类似的事情。认为这是一种激励,可以保持代码简单,并且需要尽可能少的方法调用才能完成某些任务。

其他提示

我使用以下Hack: http://www.hasemanonmobile.com/2009/10/05/quick-and-very-dirty-android-development-trick/

基本上,您将上下文指针存储为Activity中的静态变量。如果你的时间紧迫,我只推荐这个丑陋的黑客。

此外,如果您正在编写实用程序类,则可能需要(尽可能多的Android实用程序需要)调用应用程序为您提供上下文作为构造函数的一部分。

您可以创建一个上下文:

Context myContext = createPackageContext("com.example", 0);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top