TimerTask

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Нурик
Сообщения: 5
Зарегистрирован: 06 дек 2014, 15:07

TimerTask

Сообщение Нурик » 06 дек 2014, 15:14

Добрый день!имеется код,связанный с таймером(точнее с интервалом таймера)-
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
time=15;
startTimer();
}
});


}
public void startTimer(){
t = new Timer();
task = new TimerTask() {

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

@Override
public void run() {
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText(time+"");
if (time > 0)
time -= 1;


}
});
}
};
t.scheduleAtFixedRate(task, 10, 1000);
}

Проблема заключается в том что,при нажатий на кнопку restart то интервал таймера суммируется,необходимо что бы перезапуск таймера происходил без каких либо последствий.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: TimerTask

Сообщение doter.ua » 06 дек 2014, 19:14

Какая кнопка рестарт? Вы нигде не указали ее обработчик, где табуляция? код не читабельный вообще.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Нурик
Сообщения: 5
Зарегистрирован: 06 дек 2014, 15:07

Re: TimerTask

Сообщение Нурик » 08 дек 2014, 06:56

doter.ua писал(а):Какая кнопка рестарт? Вы нигде не указали ее обработчик, где табуляция? код не читабельный вообще.
вот это:

public class MyActivity extends Activity {

Button btn;
int time=10 ;
Timer t;
TimerTask task;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);



btn = (Button) findViewById(R.id.restart);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
time=15;
startTimer();
}
});


}
public void startTimer(){
t = new Timer();
task = new TimerTask() {

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

@Override
public void run() {
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText(time+"");
if (time > 0)
time -= 1;


}
});
}
};
t.scheduleAtFixedRate(task, 10, 1000);
}
}

Ответить