我怀疑如果在Android的“回收器”视图中设置数据之前执行计算会导致性能低下吗?
例如,我接收数据列表作为服务器响应,例如:
,我必须在回收站视图中将其与百分比一起显示, 因此,我在Android端进行了计算,以在设置适配器之前将这些销售目标转换为百分比。因此,在设置第一个数据之前,我通过执行以下操作来计算百分比:(10/50)* 100,这将为我提供所有列表数据的20%,依此类推。那么此计算是否会降低Android的加载性能,或者如果我在服务器端计算百分比并获得响应本身的百分比会更好,这样我就可以简单地设置它而无需进行任何计算,但这会影响响应时间?
所以我在服务器响应时间和Android处理时间之间感到困惑。
答案 0 :(得分:1)
该百分比似乎对安全性不敏感,您可以在客户端进行计算。如果您想节省处理数据的时间,请尝试将一些数据填充到回收者视图的适配器中,以使其对用户可见,然后执行一些异步操作 后台任务来计算数据并更新视图。
答案 1 :(得分:0)
您应该使用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();