首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在回收视图适配器中的计算,它会影响性能吗?

在回收视图适配器中的计算,它会影响性能吗?
EN

Stack Overflow用户
提问于 2018-11-25 11:36:58
回答 2查看 98关注 0票数 1

我怀疑,如果我们在中设置数据回收器视图中的数据之前执行计算,会不会出现低性能?

例如,Im接收作为服务器响应的数据列表,例如:

  • 销售目标:50人,销售目标:A人10人
  • 销售目标:60人,销售目标: B人15人等。

我必须从回收商的角度和百分比一起展示这一点,所以我在安卓端做了一个计算,在设置适配器之前将这些销售目标转换成百分比。因此,在设置第一个数据之前,我通过以下操作计算百分比:(10/50) *100,这给了我20%,等等,所有的列表数据。那么,这种计算是否降低了Android中的加载性能,或者如果我计算服务器端的百分比并获得响应本身中的百分比,这样我就可以简单地设置它,而无需计算,但它会影响响应时间吗?

所以我混淆了服务器响应时间和Android处理时间。

EN

回答 2

Stack Overflow用户

发布于 2018-11-25 11:45:35

百分比似乎不安全敏感,您可以在客户端计算它。如果要节省处理数据的时间,请尝试将一些数据填充到回收器视图的适配器,使其对用户可见,然后执行一些异步后台任务来计算数据并更新视图。

票数 1
EN

Stack Overflow用户

发布于 2018-11-25 13:55:18

您应该使用AsyncTask。它将在后台线程中执行任务,并相应地更新UI。下面是一个简单的例子:

代码语言:javascript
复制
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
 protected Long doInBackground(URL... urls) {
     int count = urls.length;
     long totalSize = 0;
     for (int i = 0; i < count; i++) {
         totalSize += Downloader.downloadFile(urls[i]);
         publishProgress((int) ((i / (float) count) * 100));
         // Escape early if cancel() is called
         if (isCancelled()) break;
     }
     return totalSize;
 }

 protected void onProgressUpdate(Integer... progress) {
     setProgressPercent(progress[0]);
 }

 protected void onPostExecute(Long result) {
     showDialog("Downloaded " + result + " bytes");
 }
}

运行AsyncTask

代码语言:javascript
复制
new DownloadFilesTask(). execute(param1, param2, param3);

取消任务调用

代码语言:javascript
复制
cancel();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53467044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档