AsyncTask-如何将对象作为参数传递给匿名AsyncTask类

时间:2020-02-10 15:30:33

标签: java android android-asynctask

我正在用android做一些编码工作。我几乎遇到了一个问题,要解决这个问题,我需要一个匿名 AsyncTask 类来执行。但是我还需要在执行之前传递并反对此类。我尝试了以下代码,但无法正常工作,也没有通过谷歌搜索找到任何解决方案。

 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();

}

2 个答案:

答案 0 :(得分:1)

以下是如何将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);

答案 1 :(得分:0)

您可以那样做:

 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();
相关问题