How to Start Incremental Timer in Android -
before asking question let me tell question has been answered many time didn't resolve problem. tried this questions answer not helpful.
so problem creating mastermind game in android , want start timer 00:00 when user enter first pin on until user hit last pin or when user click on new game timer reset , not start until user enter first pin again.
so here try
handler timerhandler = new handler(); runnable timerrunnable = new runnable() {      @override     public void run() {         long millis = system.currenttimemillis() - starttime;         int seconds = (int) (millis / 1000);         int minutes = seconds / 60;         seconds = seconds % 60;          timertextview.settext(string.format("%d:%02d", minutes, seconds));          timerhandler.postdelayed(this, 500);     } };   function start or stop timer
@override public void onpause() {     super.onpause();     timerhandler.removecallbacks(timerrunnable);     timercheck = true; }   when user hit first pin code execute
timercheck = true; starttimer();   when user hit last pin code execute
timercheck = false; starttimer();   nothing working please me start timer when first condition true , stop timer when last condition true, in between if newgame hit timer reset , don't start until first pin got hit again. grateful. in advance
i solve problem , here how done it
declarations
private handler customhandler = new handler(); private long starttime = 0l; long timeinmilliseconds = 0l; long timeswapbuff = 0l; long updatedtime = 0l;   to start timer when first pin enter
starttime = systemclock.uptimemillis(); customhandler.postdelayed(updatetimerthread, 0);   pause timer when last pin enters
timeswapbuff += timeinmilliseconds; customhandler.removecallbacks(updatetimerthread);   main runnable
private runnable updatetimerthread = new runnable() {      public void run() {          timeinmilliseconds = systemclock.uptimemillis() - starttime;          updatedtime = timeswapbuff + timeinmilliseconds;          secs = (int) (updatedtime / 1000);         mins = secs / 60;         secs = secs % 60;         int milliseconds = (int) (updatedtime % 1000);         timertextview.settext(string.format("%02d", mins) + ":"                 + string.format("%02d", secs));         customhandler.postdelayed(this, 0);     }  };   its totally working fine me hope work guys too
Comments
Post a Comment