как остановить задачу таймера

У меня есть задача и обработчик таймера и таймера, и мой код будет выполняться каждые 10 секунд, пока переменная ServerResponse не станет пустой, а затем перенаправить на другое действие.

но когда мой код перенаправляется на другую задачу таймера активности, работает !!!!!

как остановить задачу таймера, когда мы находимся в другом действии??

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {

        @Override
        public void run() {
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    new sendDataToServer().execute();
                    final Handler handler = new Handler();

                    handler.postDelayed(new Runnable() {

                        @Override
                        public void run() {
                            if(serverResponse.length() > 0)
                            {
                                Intent intent = new Intent(PayementActivity.this,UserFormActivity.class);
                                startActivity(intent);
                                finish();
                            }
                        }
                    }, 10000);
                }
            });
        }
    }, 0, 10000);

person soheila    schedule 23.02.2016    source источник
comment
timer.cancel() должен помочь, прежде чем запускать Intent   -  person chaitanya    schedule 24.02.2016
comment
Почему вы используете и таймер, и обработчик?   -  person Doug Stevenson    schedule 24.02.2016


Ответы (1)


Это может не отвечать на ваш вопрос напрямую, но просто реактивные расширения являются хорошей альтернативой использованию TimerTasks. Проверьте это и это вне.

subscription = Observable.interval(10, TimeUnit.SECONDS)
                .subscribeOn(Schedulers.io())// Runs on a io thread pool
                .observeOn(AndroidSchedulers.mainThread()) // Observes on UI thread 
                .subscribe(timeCount ->{
                    // Your code here
                 });
subscription.unsubscribe();// Stops the stream.
person Habib Okanla    schedule 24.02.2016