如何在AsyncTask的post execute方法中获取对recyclerveiw适配器进度条的引用

时间:2019-03-04 14:56:18

标签: android android-recyclerview android-asynctask adapter

这是我要解决的情况。我有一个布局,其中包含一些要提交给服务器的数据,此Activity布局需要上传多个文件,这些文件(附件)使用RecyclerView.Adapter列出。在布局底部列出的每个附件中,都有一个进度条,显示状态或已上传到服务器的文件的百分比。单击提交按钮后,它会调用AsyncTask,在此onPostExecute布局的Activity方法中,我要上传附件。

克服此问题的最佳方法是什么?请帮忙。

1 个答案:

答案 0 :(得分:0)

如果您的异步任务是活动或片段的内部类,则可以简单地从onPostExecute内调用存在于活动或片段中的方法

class MyActivity extends Activity
{

    public void showOrHideProgress(Result result)
    { 
        // your code here
    }

    class MyAsyncTask extends AsyncTask
    { 
        private final WeakReference><View> progressBarReference;

        public MyAsyncTask(@NonNull View progress)
        {
            this.progressBarReference = new WeakReference<>(progress); 
        }

        @Override
        protected void onPostExecute(Result result)
        {
            super.onPostExecute(result);
            showOrHideProgress(result); // or do something with progressBarReference
        }
    }

}