메신저 안드로이드 전체 프로젝트의 일환으로, 나는 다음과 같은 타이머 코드를 사용하여 백그라운드에서 실행되는 서비스가 있습니다안드로이드 데브 : 타이머 동적 간격 기간을 존중하지
timer.scheduleAtFixedRate(new TimerTask() { public void run() {.....}, 0, nextUpdateInterval);
을
타이머가 동적으로 생성 된 다음 업데이트 간격 기간을 준수하지 않는다는 것이 알려지면 ... nextUpdateInterval은 처음 실행을 위해 30000 (30 초)으로 초기화되는 개인 정적 long으로 선언됩니다. 일단 프로파일이 발견되면 수학을하고 nextUpdateInterval을 업데이트합니다 ... 디버깅 목적으로 nextUpdateInterval 값을 시간/분으로 변환하고 calcul ATION ... 그것은 다음 타이머 실행이 이루어져야 시간과 분, 나를 보여처럼 ... 예상대로 작동
이nextUpdateInterval 계산 : 프로파일이 발견되면 long entirePeriodDiff = toTimeMiliseconds - fromTimeMiliseconds;
다음, 내가 계산하려면 nextUpdateInterval long elapsedTime = rightNowDate.getTime() - fromDate.getTime();
하고 난 업데이트 : elapsedTime과 같이 nextUpdateInterval = entirePeriodDiff - elapsedTime;
한 예 시나리오 : '일'의 프로필 4:30 오후 오전 9 시부 터 설정, 서비스/응용 프로그램이 2:02 PM에 실행 (EST), 내 토스트 메시지가 지속적으로 실행되고 행동합니다 얼마나 많은 시간이 남았는지 알려주는 카운트 다운 ...이 경우 2:28 그리고 감소 ... 이상적으로 이것은 2:28이 올 때까지 표시되지 않아야합니다 ... 어떤 아이디어입니까? android doc 당으로
을 고려할 필요가있을 수 있습니다, 그 이유가 될 수 주셔서 감사합니다 생각 당신의 의견 –