Как запустить асинхронную задачу внутри одного фрагмента (когда фрагмент все еще невидим) и сохранить значения

#android #android-asynctask

#Android #android-asynctask

Вопрос:

У меня есть две асинхронные задачи, запущенные во фрагменте, давайте вызовем F1.

Фрагменту требуется 4/5 секунд, чтобы загрузить данные, когда они видны (я поместил туда индикатор выполнения)

чего я хочу добиться, так это:

чтобы запустить эту асинхронную задачу во фрагменте, как только я открываю приложение (загружает другой фрагмент), чтобы мне не приходилось показывать индикатор выполнения при открытии этого конкретного фрагмента (F1), и сохранять данные до тех пор, пока (i) не будет нажата кнопка обновления или (ii) приложение не будет запущено.закрыт / перезапущен.

Я попытался поместить execute() асинхронной задачи внутри метода и попытаться вызвать метод из моего основного фрагмента. Но я получаю сообщение об ошибке, потому что к моему методу post execute прикреплено некоторое представление.

 protected void onPostExecute(String s) {
        super.onPostExecute(s);

        recyclerView.getItemAnimator().setChangeDuration(0);
        recyclerView.setNestedScrollingEnabled(false);
        recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), mNoOfColumns));
        adapterDod=new AdapterDotd(getActivity(),data);
        adapterDod.notifyDataSetChanged();

        if(AsyncTaskCount == AsyncTaskRequested) {
            lottieAnimationView.setVisibility(View.GONE);
        }


        recyclerView.invalidate();
        recyclerView.setAdapter(adapterDod);
    }
 

Ответ №1:

я советую вам работать с fragment inside viewpager , что позволяет загружать ваши fragment данные, не будучи видимыми

Комментарии:

1. Я использую его. Спасибо за совет.