在Android实用程序类中,我想在类中获取系统首选项值,但我没有那里的上下文,因为调用它的类也没有上下文。我发现对于Resources,可以使用静态Resources.getSystem()
函数。在没有上下文的情况下获取系统首选项有没有类似的方法?
我的班级不是活动也不是服务。这是一个实用工具类。如果需要可以提供更多信息。
答案 0 :(得分:7)
你必须向它发送一个上下文 - 不要试图逃避你的责任。 :)您的实用程序类必须在某个级别由活动或服务调用,并且您将通过每个方法调用将该Context一直传递到该行。我知道这很烦人,我必须自己做类似的事情。认为这是一种激励,可以保持代码简单,并且需要尽可能少的方法调用才能完成某些任务。
答案 1 :(得分:-1)
我使用以下Hack:http://www.hasemanonmobile.com/2009/10/05/quick-and-very-dirty-android-development-trick/
基本上,您将上下文指针存储为Activity中的静态变量。如果你的时间紧迫,我只推荐这个丑陋的黑客。
此外,如果您正在编写实用程序类,则可能需要(尽可能多的Android实用程序需要)调用应用程序为您提供上下文作为构造函数的一部分。
答案 2 :(得分:-3)
您可以创建一个上下文:
Context myContext = createPackageContext("com.example", 0);