我构建了一个应用程序,在其中使用androidplot库以选项卡式布局(使用 ActionBar 选项卡)显示多个图表
在每个选项卡上,我在片段中显示一个图表。由于切换选项卡时渲染速度很慢(我有一系列 3000/4000 值),因此我尝试使用 AsyncTask 将图形生成放在后台线程中。
它工作正常,但我注意到如果我使用不确定的 ProgressBar,指示器不会旋转但它仍然保持静止,这意味着有一些进程阻塞了 UI 线程。(我的猜测在这里)。
您对如何改进我的应用程序有什么建议吗?我想将 ProgressBar 显示为加载指示器而不是静态文本
这是 AsyncTask 代码,我最终使用“正在计算...”消息而不是 ProgressBar 作为解决方法:
private class AsyncPlotTask extends AsyncTask<XYPlot, Void, Boolean> {
@Override
protected void onPreExecute() {
//show loading message only
loading.setVisibility(View.VISIBLE);
dataContainer.setVisibility(View.GONE);
}
@Override
protected Boolean doInBackground(XYPlot... plot) {
boolean success = true;
plot[0].addSeries(dataSeries, dataSeriesFormat);
return success;
}
@Override
protected void onPostExecute(Boolean result) {
//hide loading message and show graph
loading.setVisibility(View.GONE);
dataContainer.setVisibility(View.VISIBLE);
}
}//AsyncPlotTask