Recycler View Adapter中的计算,会影响性能吗



我怀疑,如果我们在安卓系统中的回收器视图中设置数据之前执行计算,是否会出现低性能

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

  • 人员A的销售目标:50,实现销售目标:10
  • 销售目标:60人,实现销售目标:15人B等

我必须在回收器视图中显示这一点以及百分比,因此,我在安卓端进行了一次计算,在适配器中设置之前,将这些销售目标转换为百分比。因此,在设置第一个数据之前,我通过这样做来计算百分比:(10/50(*100,这给了我20%,依此类推,对于所有列表数据。那么,这种计算是否会降低安卓系统中的加载性能,或者如果我在服务器端计算百分比并获得响应本身的百分比,这样我就可以简单地设置它而不进行任何计算,这会更好吗?但它会影响响应时间吗?

所以我对服务器响应时间和安卓处理时间感到困惑。

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

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

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

new DownloadFilesTask(). execute(param1, param2, param3);

要取消任务,请调用

cancel();