Achartengine repeindre
-
26-10-2019 - |
Question
J'ai une connexion de données dans webservice. Dans Assynctask je reçois des données toutes les 5 secondes. Une fois les données sont arrivés je fais nouvel ensemble de données et becuse vivant mChartView je viens de repeindre. Et ici comming mon problème. Le tableau de ligne repeindre régénerer le tableau il suffit de faire un nouveau sommet de la dernière. Et bien sûr 2-3 minutes de menmory: (
Voici mon code:
class GetData extends AsyncTask<Void, String, Void> {
private ArrayList<String> Alldata = new ArrayList<String>();
public XYMultipleSeriesDataset datasetOut;
public XYMultipleSeriesRenderer mRendererOut;
@Override
protected Void doInBackground(Void... unused) {
Alldata.clear();
Alldata = DataFromWeb.getChartDataNew("&name=XXX", "XXX");
return (null);
}
@Override
protected void onPostExecute(Void unused) {
datasetOut = CCChart.getDataSet(getBaseContext(), Alldata);
mRendererOut = CCChart.getRendererPortrait(getBaseContext());
Log.d("Debug", "alldatasize: " + Alldata.size());
Log.d("Debug", "dataset " + datasetOut.getSeriesCount() );
if (mChartView != null) {
mChartView.repaint();
Log.v("CC_trace", "CCChartRepaint");
} else {
mChartView = ChartFactory.getLineChartView(getBaseContext(), datasetOut , mRendererOut);
layout.addView(mChartView, new LayoutParams(
LayoutParams.WRAP_CONTENT, getHeight()));
Log.v("CC_trace", "CCChartGenerate");
}
}
}
MayBe appeler je ne suis pas en bonne place le repeindre ():)
thx l'aide ...
La solution
Dans le mien, je l'appelle jamais repeindre. Je recrée tout l'ancien
comme ceci:
@Override
protected void onPostExecute(Void unused) {
datasetOut = CCChart.getDataSet(getBaseContext(), Alldata);
mRendererOut = CCChart.getRendererPortrait(getBaseContext());
Log.d("Debug", "alldatasize: " + Alldata.size());
Log.d("Debug", "dataset " + datasetOut.getSeriesCount() );
mChartView = ChartFactory.getLineChartView(getBaseContext(), datasetOut , mRendererOut);
layout.removeAllViews();
layout.addView(mChartView, new LayoutParams(LayoutParams.WRAP_CONTENT, getHeight()));
Log.v("CC_trace", "CCChartGenerate");
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow