내 프로그램에 두 개의 CountDownTimer가 있습니다. 4 초 1 초, 24 초입니다. 짧은 타이머가 실행될 때마다 4 초마다 더 긴 타이머를 일시 중지하고 싶습니다. 그런 다음 짧은 타이머가 끝나면 긴 타이머가 카운트 다운을 시작합니다. 여기에 2 개 개의 타이머에 대한 코드는 다음과 같습니다다른 카운트 다운 타이머가 실행 중일 때 어떻게 카운트 다운 타이머를 일시 중지 할 수 있습니까?
final CountDownTimer loop = new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
number.setVisibility(View.GONE);
final TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setVisibility(View.VISIBLE);
prompt.setText(" Enter the number");
final EditText input = (EditText) findViewById(R.id.enterAnswer);
input.setVisibility(View.VISIBLE);
input.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
Editable answer = input.getText();
int finalAnswer = Integer.parseInt(String.valueOf(answer));
int finalLoadG1 = Integer.parseInt(String.valueOf(number.getText()));
input.setVisibility(View.GONE);
prompt.setVisibility(View.GONE);
if (finalAnswer == finalLoadG1) {
score++;
}
number.setVisibility(View.VISIBLE);
int loadG1 = generateG1.nextInt(1000000)+10000;
number.setText(""+loadG1);
input.getText().clear();
start();
return true;
default:
}
}
return false;
}
});
}
}.start();
new CountDownTimer(24000, 1000) {
@Override
public void onTick (long millisUntilFinished) {
}
@Override
public void onFinish() {
TextView result = (TextView) findViewById(R.id.outcome);
result.setText("Score: "+ score);
TextView prompt = (TextView) findViewById(R.id.prompt);
prompt.setVisibility(View.GONE);
final EditText input = (EditText) findViewById(R.id.enterAnswer);
input.setVisibility(View.GONE);
loop.cancel();
number.setVisibility(View.GONE);
}
}.start();
내가 그 짧은 타이머에 대한 onTick에 name.pause()를 가하고, 더 이상 타이머를 이름에 대해 생각했다. 문제는 긴 타이머가 짧은 타이머 뒤에 쓰여지기 때문에 이름이 초기화되기 전에 인식 할 수 없다는 것입니다. 자바는 순서대로 읽습니다. 아니면 모든 언어입니까?
누군가 나를 도와 줄 수 있다면 감사 할 것입니다.
아무도 대답 할 수없는 부수적 인 질문으로, 사용자가 EditText (int를위한 것임)에서 아무 것도 입력하지 않을 때 앱이 충돌하는 것을 방지 할 수있는 방법이 있습니까? 마찬가지로 앱을 강제 종료하지 않고 계속 사용할 수 있습니까?
미리 감사드립니다.
당신이를 확장하는 클래스를 만들어야합니다
타이머 일시 정지하려면 :
타이머를 시작하려면 카운트 다운 타이머. 그렇다면 당신의 짧은 하나 안에 접근 할 수 있습니다 ...... – Opiatefuchs