java - 对 getApplicationContext() 的不同响应

标签 java android sharedpreferences

在我的应用程序中,我在一个处理对我的应用程序 SharedPreferences 的所有请求的类中使用 Context,该类的相关部分是构造函数:

private SharedPreferences preferences;
public AppSettings(Context context){
    preferences = PreferenceManager.getDefaultSharedPreferences(context);
}

在我最初的 Activity 中,我可以使用类中的一些其他方法很好地设置和读取参数,我使用 getApplicationContext() 从 < b>doInBackground() 调用扩展 AsyncTask 的类:

public class MyTask extends AsyncTask<Void, Void, Boolean> {
    @Override
    protected Boolean doInBackground(Void... params) {
        ...
        AppSettings as = new AppSettings(context);
        ...
    }
}

这工作得很好,但是当我尝试在下一个 Activity 中恢复设置时:

public class MainActivity extends Activity 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AppSettings as = AppSettings(getApplicationContext());
    }
    ...
}

我在 Eclipse 中收到一条错误消息:

The method AppSettings(Context) is undefined for the type MainActivity

我对 getApplicationContext 的理解是它应该给我应用程序的全局上下文,但显然在每种情况下它都返回不同的东西。我该如何解决这个问题?

最佳答案

呃..你不是说

AppSettings as = new AppSettings(getApplicationContext()); //<-- missed the "new"

关于java - 对 getApplicationContext() 的不同响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15073446/

相关文章:

java - 设置 zest 图形节点和连接的样式

java - 捕获数据并将其传递到文本字段中

android - 如何在通货膨胀期间从另一个控件中引用一个控件?

java - 无法启用 JNI 调试器

java - 表布局中的数据持久化

Netbeans 7.2.1 在调试时要求 netx.jar 和 plugin.jar 文件

android - 为其他应用提供后台服务

dart - 如何在 Bloc 模式中使用 SharedPreferences?

java - SharedPreferences Android 中奇怪的无法解释的行为

java ScheduledThreadPoolExecutor 改变任务的计时