12

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

我的课程既不是活动也不是服务。这是一个实用程序类。如果需要可以提供更多信息。

4

3 回答 3

7

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

于 2009-11-29T20:41:53.490 回答
-1

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

本质上,您将上下文指针作为静态变量隐藏在 Activity 中。如果您的截止日期很紧,我只会推荐这个丑陋的黑客。

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

于 2009-11-29T20:57:23.093 回答
-3

您可以创建一个上下文:

Context myContext = createPackageContext("com.example", 0);
于 2009-12-23T08:58:35.223 回答