Timer does not stop in android

2019-04-06 23:56发布

I made an application in android and used timer like this..

try {
    CountDownTimer  start1 = new CountDownTimer(20000, 1000) {

        public void onTick(long millisUntilFinished) {
                TextView timeShow = (TextView)findViewById(R.id.showTime);
        timeShow.setText(" "+" 00:" +millisUntilFinished / 1000);
            }

But my problem is i don't know how to stop timer. Any idea?

I already tried:

quitApplication.setOnClickListener(new OnClickListener() {
    public void onClick(View v) { 
        start1.cancel(); 
        Intent i = new Intent(v.getContext(), startGame.class);
        startActivity(i);
        // TODO Auto-generated method stub 
    } 
}); 

标签: android timer
3条回答
祖国的老花朵
2楼-- · 2019-04-07 00:28

start1.cancel() is the correct method to call to cancel the timer.

You did not provide any details about the error you got or why it didn't work for you, but I am assuming your program didn't compile because your variable start1 is a local variable. It is probably local to whatever method your try block is in. This means your OnClickListener construction has no idea what start1 is.

To fix this simply declare start1 as a class variable (outside of all methods but within the class):

public class someClass {

CountDownTimer start1;
// blah some code
public void someMethod {
   try {
      start1 = new CountDownTimer() { //etc

Doing so will allow other methods to recognize and interact with start1

查看更多
孤傲高冷的网名
3楼-- · 2019-04-07 00:40

call start1.cancel() when you want to stop the timer

查看更多
神经病院院长
4楼-- · 2019-04-07 00:41

I know this is a year old but for future readers you just need to call the timer as a final.

like so

final CountDownTimer  start1 = new CountDownTimer(20000, 1000) {}

that should work

查看更多
登录 后发表回答