나는 시간 기반 이벤트를 크로노 미터를 사용하여 만들려고합니다. 아래의 코드는 5 초 동안 크로노 미터를 시작한 후 건배를 성공적으로 표시하지만 5/10/20 초에 건배를 표시해야합니다.onchronometerticklistener를 사용하는 if 문
if (elapsedTime == 5000 || elapsedTime == 10000)을 사용해 보았지만 ==를 사용하면 표시가되지 않습니다.
아이디어가 있으십니까? 이 같은
Chronometer.OnChronometerTickListener mChronoListener = new OnChronometerTickListener() { // listens to journey timer to initiate time based events
public void onChronometerTick(Chronometer arg0) {
long elapsedTime = SystemClock.elapsedRealtime() - arg0.getBase();
if (elapsedTime > 5000)
{
Toast.makeText(SafeDrive3Activity.this, "HOUR PASSED", Toast.LENGTH_LONG).show();
}
}
};
당신의'elapsedTime'이에 따라 1000 밀리 초 정확하게 나눌 것 같지는 않다 무엇 장치는'onChronometerTick (...)'이 호출 될 때까지 지연을 초래할 수 있습니다. 환언하면, 경과 시간은 청취자에게 전화를 지연시키는 다른 상황에 따라 5001ms 또는 5020ms 일 수있다. 정확한 값에'=='를 사용하면이 경우 작동하지 않습니다. 1000으로 나눈 다음'== 5 '또는'== 10'을 사용하여 비교하십시오. 더 좋게, 1000으로 나눈 다음 결과가 모듈러스 ('%'연산자)를 사용하여 5 또는 10으로 나눌 수 있는지 확인하십시오. – Squonk
네가 맞아, 고마워! – Rob