我正在开发一个使用大量网络请求进行数据检索的应用程序。
网络请求当前是一个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/