Почему метод doInbackground не может иметь пустое тело? - PullRequest
0 голосов
/ 17 мая 2019

У меня есть класс, который расширяет AsyncTask.Я передаю список мониторов холестерина и создаю фрагмент в onPostExecute.Однако doInbackground не может быть пустым методом, а onPostExecute также не корректно переопределяет?

private class CholesterolFragment extends AsyncTask<ArrayList<CholesterolMonitor>, Void, Void>`{

        @Override
        protected Void doInBackground(ArrayList<CholesterolMonitor>... arrayLists) {

        }

        @Override
        protected void onPostExecute(ArrayList<CholesterolMonitor> result){
            cholesterol_monitor= result;
            monitorListFragment = MonitorListFragment.newInstance(cholesterol_monitor);
            getSupportFragmentManager()
                    .beginTransaction()
                    .replace(R.id.fragment_monitor_layout, monitorListFragment)
                    .commit();
        }
    }

В моем onCreate я передаю список мониторов холестерина:

monitor_list= this.getIntent().getParcelableArrayListExtra("monitorList");

cholesterol_monitor = (ArrayList<CholesterolMonitor>) monitor_list;
CholesterolFragment cholesterolFragment= new CholesterolFragment();
cholesterolFragment.execute(cholesterol_monitor);

1 Ответ

2 голосов
/ 17 мая 2019

Нет смысла иметь асинхронную задачу с пустым doInBackground, в этот момент вы ничего не делаете асинхронно.Вы также можете просто сделать это прямо в главном потоке.

Но ответ в том, что doInBackground возвращает значение.Таким образом, тело может просто возвращать ноль;но ему нужно это возвращение.

...