2012-05-01 10 views
0

3 가지 활동 (a, b 및 c)이 있습니다. 활동에서 나는 몇 초의 활동 후에 시작하는 countdowntimer를 가지고있다. b. 나는 countdowntimer 활동 a를 완료하고 C를 시작하려는이 코드활동이 완료되지 않았습니다.

Intent myIntent = new Intent(a.this, c.class); 
a.this.startActivity(myIntent); 
finish(); 

: 활동에서 사용자 활동의 C를 시작할 수 있습니다. 이제 문제 : 사용자가 c를 시작하면 c가 시작되지만 카운트 다운이 중지되지 않고 완료되면 활동 b가 시작됩니다. 왜? 나는 countdowntimer와 함께 hole activity를 finishing했다. 나는 이해하지 못한다. 나는 또한 onDestroy()을 시도했지만 작동하지 않습니다. 내 Countdowntimer :

new CountDownTimer(7000, 1000) { 
    public void onTick(long millisUntilFinished) { } 
    public void onFinish() { } 
}.start(); 
+0

어떻게 카운트 다운 타이머를 구현 했습니까?> – slayton

+0

예, 구현했습니다. – nameless

+2

당신은 활동의 onStop() 함수에서 타이머를 멈추어야합니다 – whoabackoff

답변

2
public class a extends Activity { 
    CountDownTimer timer; 

    public void onCreate(Bundle bundle) 
    { 
    // .. 
    timer = new CountDownTimer(7000, 1000) { 
     public void onTick(long millisUntilFinished) { } 

     public void onFinish() { 
     Intent myIntent = new Intent(a.this, b.class); 
     a.this.startActivity(myIntent);   
     } 
    }.start(); 
    } 

    public void startActivityC() 
    { 
     timer.cancel(); 
     Intent myIntent = new Intent(a.this, c.class); 
     a.this.startActivity(myIntent);  
    } 
} 

의사 코드이며 버그/오류가있을 수 있습니다. 단순히 작업 코드가 아닌 기술을 설명하기위한 것입니다.

+0

내 카운트 다운 타이머의 이름을 얻을 수 있습니까? – nameless

+0

나는 일한다 !!!! 대단히 감사합니다. – nameless

0

당신이 a.this.startActivity (myIntent)와 새로운 활동을 시작할 때; 'a'활동이 중지되고 finish() 호출이 실행되지 않습니다. 'c'활동을 시작하기 전에 타이머를 중지해야합니다.

0

액티비티의 onPause() 함수를 오버라이드하여 타이머를 중지하십시오. 어쩌면 액티비티를 시작한 버튼이나 액션에 의해 설정된 부울 변수를 검사하여 c 타이머를 중지 할 수 있습니다.

관련 문제