Java AsyncTask-如何将对象作为参数传递给匿名AsyncTask类
我正在用android做一些编码工作。我几乎遇到了一个问题,为了解决这个问题,我需要一个匿名异步任务类来执行。但在执行之前,我还需要向这个类传递和对象。我尝试了下面的代码,但它不起作用,我也没有通过谷歌搜索找到任何解决方案Java AsyncTask-如何将对象作为参数传递给匿名AsyncTask类,java,android,android-asynctask,Java,Android,Android Asynctask,我正在用android做一些编码工作。我几乎遇到了一个问题,为了解决这个问题,我需要一个匿名异步任务类来执行。但在执行之前,我还需要向这个类传递和对象。我尝试了下面的代码,但它不起作用,我也没有通过谷歌搜索找到任何解决方案 public void saveCartToRoom(CartsPay cartsPay){ new AsyncTask<Void,Void,Void>(){ CartsPay cartsPay; @Override
public void saveCartToRoom(CartsPay cartsPay){
new AsyncTask<Void,Void,Void>(){
CartsPay cartsPay;
@Override
protected Void doInBackground(Void... voids) {
return null;
}
public void setRQ(CartsPay cartsPay){
this.cartsPay= cartsPay;
}
}.setRQ(cartsPay).execute();
}
public void saveCartToRoom(CartsPay CartsPay){
新建异步任务(){
CartsPay CartsPay;
@凌驾
受保护的空位背景(空位…空位){
返回null;
}
公共无效设置(CartsPay CartsPay){
this.cartsPay=cartsPay;
}
}.setRQ(cartsPay).execute();
}
以下是如何将CartsPay
参数传递给匿名AsyncTask
new AsyncTask<CartsPay,Void,Void>(){
CartsPay cartsPay;
@Override
protected Void doInBackground(CartsPay... params) {
this.cartsPay = params[0];
// Your code ...
return null;
}
public AsyncTask setRQ(CartsPay cartsPay){
this.cartsPay= cartsPay;
return this;
}
}.execute(cartsPay);
newasynctask(){
CartsPay CartsPay;
@凌驾
受保护的空doInBackground(CartsPay…参数){
this.cartsPay=params[0];
//你的代码。。。
返回null;
}
公共异步任务集(CartsPay CartsPay){
this.cartsPay=cartsPay;
归还这个;
}
}.执行(cartsPay);
您可以这样做:
class CustomAsyncTask extends AsyncTask<Void, Void, Void> {
private YourParam mParam;
public CustomAsyncTask(YourParam param) {
mParam = param;
}
@Override
protected doInBackground(Void.. voids){
//do your thing.
}
}
为什么您要求匿名?通常您希望使用构造函数添加属性并提供值。我需要做一些不会中断我正在运行的UI线程的后台工作。如何使用匿名类实现这一点,我指的是构造函数工作?您不能在匿名类上使用构造函数:“但是,您不能在匿名类中声明构造函数。”来自。因此,您是否希望避免一些额外的行(您可以使用doInBackground参数)或者是否希望遵循约定并创建普通类取决于您
new CustomAsyncTask(param).execute();