AsyncTask - Как я могу передать объект в качестве параметра анонимному классу AsyncTask - PullRequest
1 голос
/ 10 февраля 2020

Я занимаюсь кодированием с 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 голосов
/ 10 февраля 2020

Вы можете просто сделать это так:

 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();
0 голосов
/ 10 февраля 2020

Вот как передать параметр 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);
...