如何在一个片段内运行异步任务(当片段仍不可见时)并保留值

时间:2019-04-17 18:31:31

标签: 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 个答案:

答案 0 :(得分:1)

我建议您在fragment内使用viewpager,这样可以在不可见的情况下加载fragment数据