对getApplicationContext()的不同响应

时间:2013-02-25 18:06:40

标签: java android sharedpreferences

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

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

在我的初始活动中,我可以使用类中的其他方法设置和读取参数,我使用 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中遇到错误:

  

对于MainActivity类型

,未定义AppSettings(Context)方法

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

1 个答案:

答案 0 :(得分:2)

错误..不是吗?

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