我正在开发一个使用大量网络请求进行数据检索的应用程序。
网络请求当前是一个URLConnection,带有HttpsURLConnection

我遇到的问题是我打了几次getApplicationContext()。当我在活动类中声明该类之前,这很好,但是我希望仅在单独的类中声明AsyncTask,以便在需要时将其导入到活动类中。我假设我无法从自定义类中获取getApplicationContext(),因为它没有扩展活动。我该如何解决?实例化时可以传递上下文作为参数吗?


会像这样的工作:

Context contxt = getApplicationContext();
CustomClass custmClass = new CustomClass();
ArrayList<Object> parameters = new ArrayList<Object>();
parameters.add(contxt);
...
custmClass.execute(parameters);


CustomClass extends AsyncTask<ArrayList<Object>, Void, Boolean>在哪里?

最佳答案

实例化时可以传递上下文作为参数吗?


是。您可以将当前Context作为参数传递给自定义类。

第一种方式:

在自定义类中创建单个参数构造函数

Context myCon;

public myClass(Context mCon){
 this.myCon=mCon;
}


您可以像这样访问Activity

myClass mc=new myClass(Activity.this);


第二种方式:

通过直接传递给Custom类方法

public void getCount(Context mCon){
 //Directly used mCon here
}


当前解决方案:

Context contxt = getApplicationContext();
CustomClass custmClass = new CustomClass(contxt);
ArrayList<Object> parameters = new ArrayList<Object>();
parameters.add(contxt);
...
custmClass.execute(parameters);

关于java - android,带有getApplicationContext()的自定义类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29823480/

10-14 12:46