0

즉시 'START'버튼을 누르면 사용자가 감소하기 시작하는 사용자에게 CountDownTimer을 표시하려하지만 활동을 닫고 다시 열면 CountDownTimer가 점점 커지고 있습니다. 다시 시작하고 다시 시작하십시오.CountDownTimer가 응용 프로그램을 닫은 후 다시 시작하는 중입니다.

나는이 link을 사용하여 CountDownTimer을 설정하는 방법을 학습했습니다.

여기에 내가 코딩 방법은 다음과 같습니다

new CountDownTimer(ms, 1000) { 

      public void onTick(long millisUntilFinished) { 
       String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millisUntilFinished), 
         TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % TimeUnit.HOURS.toMinutes(1), 
         TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % TimeUnit.MINUTES.toSeconds(1)); 
       holder.availableFor.setText(hms); 
      } 

      public void onFinish() { 
       holder.linearLayout.setVisibility(View.GONE); 
       holder.firebaseDatabase.child(itemID).setValue(null); 
       holder.geoFireReference.child(itemID).setValue(null); 
      } 
     }.start(); 

날 사용자가 응용 프로그램을 닫을 경우에도가는 타이머를 유지하는 방법을 알려 주시기 바랍니다.

답변

1

나는이 타이머를 onClick 메서드로 만드는 것으로 알고 있습니다. 당신이로 즉, 온 클릭에를 만든 후 일부 글로벌 변수를

CountDownTimer timer 

을 만들어보십시오.

및 onpause에서

:

if (timer != null) { 
timer.cancel 

}

0

당신은 서비스 클래스 here 를 사용할 필요가 도움이 될 수있는 링크입니다.

-1

한 번 설정 한 타이머가 활동 수명 주기로 변경되지 않도록 타이머 데이터를 일부 전역 범위에 저장해야합니다. 당신이 그것을 사용하지 않는 경우도

shahid17june @ 응답, 또는 설치 변수가 응용 프로그램 클래스 (글로벌 데이터)에 counttimerdata 저장하고, 적절하게 업데이트 할

가장 좋은 방법은, 사용 서비스를 제안한다.