androidplotライブラリを使用して、(ActionBar タブを使用して) タブ付きレイアウトで複数のチャートを表示するアプリケーションを構築しました
各タブで、フラグメント内に 1 つのグラフを表示します。タブを切り替えるとレンダリングがかなり遅いため (一連の 3000/4000 値があります)、AsyncTask を使用してグラフ生成をバックグラウンド スレッドに入れようとしました。
正常に動作しますが、不確定な ProgressBar を使用すると、インジケーターが回転せず、静止したままであることに気付きました。これは、UI スレッドをブロックしているプロセスがあることを意味します。(ここで私の推測)。
アプリケーションを改善する方法について何か提案はありますか? ProgressBar をテキストではなく読み込みインジケーターとして表示したい
これが AsyncTask コードです。回避策として、ProgressBar の代わりに「Calculating...」メッセージを使用することになりました。
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