如何使用计时器传递给活动并使用跳过按钮取消计时器

时间:2018-01-30 00:45:50

标签: android android-activity timer skip

我只想知道如何做到这一点......这是我的代码,我找不到办法做我想做的事......

public class IntroActivity extends AppCompatActivity {

private static int TIME_OUT = 5000; //Time to launch the another activity
TimerTask mTimerTask;


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_intro);


    mTimerTask = new TimerTask() {
        public void run() {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    Intent i = new Intent(IntroActivity.this, login.class);
                    startActivity(i);
                    finish();
                }
            }, TIME_OUT);
        }};
}

public void skip(View view) {
    Intent entrar = new Intent(IntroActivity.this, login.class);
    startActivity(entrar);
    finish();
    stopTask();

}
public void stopTask() {
    mTimerTask.cancel();
}

}

我希望在时间结束时进入下一个活动,并在我按下跳过按钮时停止计时器并转到下一个活动。

此代码不会停止计时器,但已跳过并停止跳过方法。

1 个答案:

答案 0 :(得分:0)

你应该将TimerTask与Timer类一起使用,并注意:如果你使用TimerTask执行一次执行,并且任务被调度,那么无论你怎么称为cancel方法,它都将执行完毕。

Timer timer = new Timer();
timer.schedule(mTimerTask, 5000);
....
mTimerTask = new TimerTask(){
    @Override
    public void run(){
        if(YourActivity.this.isDestroyed()){
            return;
        }else {
            ..... // your code here
        }
     }
 }