Страница 1 из 1

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 то интервал таймера суммируется,необходимо что бы перезапуск таймера происходил без каких либо последствий.

Re: TimerTask

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

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);
}
}