方法getApplicationContext() - 如何在没有Activity的情况下使用

时间:2011-07-20 20:13:52

标签: java android

我在活动中调用了异步任务:

    public class DownloadFile extends AsyncTask<String, Integer, String>{
protected String doInBackground(String... url) {

因为有一些我不能做的事情,其中​​一个是使用getApplicationContext()

有什么方法可以解决这个问题吗?

6 个答案:

答案 0 :(得分:3)

您可以拥有一个将上下文作为参数的构造函数 - 这样您就可以使用

从活动中调用它
DownloadFile df = new DownloadFile(this); 

或者你可以使用

ActivityClass.this

答案 1 :(得分:1)

将您的应用程序上下文传递给构造函数

public DownloadFile(Context context)
{
    // Do fun stuff with the context, such as assign it to a class variable
}

答案 2 :(得分:0)

您始终可以ActivityName.this

答案 3 :(得分:0)

您可以使用对您的活动的引用,例如:

上下文ctx = YourActivityName.this;

答案 4 :(得分:0)

将上下文从Activity类传递给AsyncTask的构造函数类可以完成这项工作吗?

答案 5 :(得分:0)

我不建议使用Activity作为Context,而是使用ApplicationContext;它将帮助您避免因Activity泄漏导致的内存泄漏 - 请阅读this

那就是说,使用YourActivityName.this.getApplicationContext();