我在活动中调用了异步任务:
public class DownloadFile extends AsyncTask<String, Integer, String>{
protected String doInBackground(String... url) {
因为有一些我不能做的事情,其中一个是使用getApplicationContext()
有什么方法可以解决这个问题吗?
答案 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();