AsyncTask - 如何将对象作为参数传递给匿名 AsyncTask class
AsyncTask - How can i pass an object as parameter to an anonymous AsyncTask class
我正在用 android 做一些编码工作。我几乎遇到了一个问题,为了解决这个问题,我需要一个 anonymous AsyncTask class 来执行。但是我还需要在执行前传递和反对this class。我尝试了下面的代码,但它不起作用,我也没有通过谷歌搜索找到任何解决方案。
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();
}
这里是如何将 CartsPay
参数传递给 anonymousAsyncTask
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);
你可以这样做:
class CustomAsyncTask extends AsyncTask<Void, Void, Void> {
private YourParam mParam;
public CustomAsyncTask(YourParam param) {
mParam = param;
}
@Override
protected doInBackground(Void.. voids){
//do your thing.
}
}
然后使用它:
new CustomAsyncTask(param).execute();
我正在用 android 做一些编码工作。我几乎遇到了一个问题,为了解决这个问题,我需要一个 anonymous AsyncTask class 来执行。但是我还需要在执行前传递和反对this class。我尝试了下面的代码,但它不起作用,我也没有通过谷歌搜索找到任何解决方案。
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();
}
这里是如何将 CartsPay
参数传递给 anonymousAsyncTask
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);
你可以这样做:
class CustomAsyncTask extends AsyncTask<Void, Void, Void> {
private YourParam mParam;
public CustomAsyncTask(YourParam param) {
mParam = param;
}
@Override
protected doInBackground(Void.. voids){
//do your thing.
}
}
然后使用它:
new CustomAsyncTask(param).execute();