如何在 AsyncTask 的后执行方法中获取对 recyclerveiw 适配器进度条的引用
Posted
技术标签:
【中文标题】如何在 AsyncTask 的后执行方法中获取对 recyclerveiw 适配器进度条的引用【英文标题】:How to get a reference to recyclerveiw adapter Progress bar in post execute method of AsyncTask 【发布时间】:2019-07-25 21:59:07 【问题描述】:这是我要解决的方案。我有一个包含一些要提交到服务器的数据的布局,这个Activity
布局需要上传使用RecyclerView.Adapter
列出的多个文件(附件)。在我的布局底部列出的每个附件中,都有一个进度条,显示状态或已上传到服务器的文件的百分比。单击提交按钮时,它会调用AsyncTask
,并且在此Activity
布局的onPostExecute
方法中,我想上传我的附件。
解决此问题的最佳方法是什么?请帮忙。
【问题讨论】:
【参考方案1】:如果您的异步任务是活动或片段的内部类,您可以简单地从 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
【讨论】:
非常感谢,现在如何获取每个recycler view Adapter的进度条参考? 您可以将适配器或进度视图本身的引用传递给 AsyncTask,但要注意内存泄漏。 developer.android.com/studio/profile/memory-profiler.html 怎么做? ,这是真正的问题。 创建一个 AsyncTask 构造函数并将所需的对象作为参数传递。 这只是recyclerview项目的一个进度条还是多个进度条?以上是关于如何在 AsyncTask 的后执行方法中获取对 recyclerveiw 适配器进度条的引用的主要内容,如果未能解决你的问题,请参考以下文章