2016-07-18 2 views
2

экспертов,Как пройти ScatterData от службы к деятельности в MPAndroidChart

Ниже потока является то, что я узнал, чтобы получить карту на Android.

Требование - обновить график (обновление данных) каждые несколько секунд и сразу же показать. И как-то данные большие, это вызвало 1 ~ 2 секунды активность без ответа.

Мой вопрос: как подготовить данные и диаграмму в СЕРВИСЕ, а затем просто сохранить диаграмму как изображение (например, png) на путь. И выберите ACTIVITY и покажите изображение с этого пути.

Поскольку SERVICE продолжает работать в фоновом режиме, когда я нажимаю кнопку на АКТИВНОСТИ, он бы сразу показать картину, не нужно ждать получения данных (уже сделано в СЛУЖБЕ)

Спасибо.

public class MainActivity extends Activity { 
ScatterChart sDtdChart; // 1. define a chart called sDtdChart 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    ScatterData data = getData(); 
    sDtdChart.setData(data); //3. attach data to the chart 

    //4. chart's other setting 
    //XXXXXX 

    sDtdChart.invalidate(); //5. refresh the chart 
} 

// 2. prepare data for the chart 
private ScatterData getData(){ 
    //XXXXXX 
} 

}

+0

В чем проблема? Можете ли вы показать [mcve] вместо фрагмента? –

+0

Позвольте мне пояснить: сборка данных // подготовка данных для использования mChart, требуется время. // рендеринг диаграммы portioin рендеринга диаграммы использует подготовленные данные. Я хотел бы сделать // подготовку части данных в службе, так как она требует времени. (mChart - это тип ScatterChart, определенный в MPAndroidChart) – caibirdcnb

+0

Служба или AsyncTask? В любом случае, пожалуйста, [edit] включить дополнительную информацию –

ответ

0

Вы, вероятно, хотите использовать AsyncTask. See documentation. Подготовьте свои данные в doInBackground(Params...) и сделайте это в onPostExecute(Result) методах.