android - prevent achartengine and textview reset after and application sent to background -
i receivng info bluetooth , display in textview , plot using achartengine. plot displays right when first start activity. display same info in notification (textview). when press home button can see activity still running because info in notification beingness updated. when go activity, graph won't plot, , textview remains empty (the layout reset).
i have read on topic, , believe need save state of layout each time. not sure how achartengine plot , textview.
i read need track changes, , save layout on each alter onpause
or onstop
. have read need utilize onconfigurationchanged
.
could please explain me how save state on achartengine
, textview
? confuses me, because graph should "updating" when application running in backgroud, , when restore layout, restore old info in graph? or display recent data?
thanks
update (1): added next code (using sample @dan suggested):
@override protected void onsaveinstancestate(bundle outstate) { //todo super.onsaveinstancestate(outstate); // save current data, instance when changing screen orientation outstate.putserializable("datasethr", mdatasethr); outstate.putserializable("datasetrr", mdatasetrr); outstate.putserializable("dataseto2", mdataseto2); outstate.putserializable("rendererhr", mrendererhr); outstate.putserializable("rendererrr", mrendererrr); outstate.putserializable("renderero2", mrenderero2); outstate.putserializable("current_serieshr", hrcurrentseries); outstate.putserializable("current_seriesrr", rrcurrentseries); outstate.putserializable("current_serieso2", o2currentseries); outstate.putserializable("current_rendererhr", hrrenderer); outstate.putserializable("current_rendererrr", rrrenderer); outstate.putserializable("current_renderero2", o2renderer); outstate.putserializable("current_tv_hr", tvhr); outstate.putserializable("current_tv_rr", tvrr); outstate.putserializable("current_tv_o2", tvo2); } @override protected void onrestoreinstancestate(bundle savedstate) { super.onrestoreinstancestate(savedstate); // restore current data, instance when changing screen orientation mdatasethr = (xymultipleseriesdataset) savedstate.getserializable("datasethr"); mdatasetrr = (xymultipleseriesdataset) savedstate.getserializable("datasetrr"); mdataseto2 = (xymultipleseriesdataset) savedstate.getserializable("dataseto2"); mrendererhr = (xymultipleseriesrenderer) savedstate.getserializable("rendererhr"); mrendererrr = (xymultipleseriesrenderer) savedstate.getserializable("rendererrr"); mrenderero2 = (xymultipleseriesrenderer) savedstate.getserializable("renderero2"); hrcurrentseries = (xyseries) savedstate.getserializable("current_serieshr"); rrcurrentseries = (xyseries) savedstate.getserializable("current_seriesrr"); o2currentseries = (xyseries) savedstate.getserializable("current_serieso2"); hrrenderer = (xyseriesrenderer) savedstate.getserializable("current_rendererhr"); rrrenderer = (xyseriesrenderer) savedstate.getserializable("current_rendererrr"); o2renderer = (xyseriesrenderer) savedstate.getserializable("current_renderero2"); tvhr = (textview) savedstate.getserializable("current_tv_hr"); tvrr = (textview) savedstate.getserializable("current_tv_rr"); tvo2 = (textview) savedstate.getserializable("current_tv_o2"); }
but still not help. textview , graphs still restored original state. issue more that. receiving info bluetooth. plot info in achartengine, , display comes-in in textview. after activity resumes after went through onpause
, onstop
, info not beingness updated.
it updates when handler receives message_read
, , runs method. in method update textview using:
textview tvhr = (textview) findviewbyid(r.id.hrdisplay); // update textview textview tvrr = (textview) findviewbyid(r.id.rrdisplay); // update textview textview tvo2 = (textview) findviewbyid(r.id.o2display); // update textview tvhr.settext(hr); tvrr.settext(rr); tvo2.settext(o2);
after activity sent background (goes through onpause
, onstop
), , resumes back, textview won't update. know info comes in, , go through code above, because same method updates notifications, , can see incoming info on there updates time.
update #2: added next code within onresume
:
if (savedinstancestate != null) { //then application beingness reloaded onrestoreinstancestate(savedinstancestate); }
but still not restored previous state, , display textview , graph still not beingness updated.
you need override onsaveinstancestate
, onrestoreinstancestate
, store , retrieve dataset , renderer chart , textview value. please see illustration here.
android graph bluetooth achartengine
No comments:
Post a Comment