Boa noite, mortais.
Tenho a seguinte classe, queria que fosse regressivamente partindo de 02:10. O meu problema é que não está indo até 00:00, vai até 01:06. Isso mesmo. Por algum motivo bizarramente que não identifiquei ainda ele para nessa contagem todas as vezes. Por favor me ajudem.
private class TaskToProgressBar extends AsyncTask<Object, Object, String> {
private ProgressBar progressBar;
private TextView textView;
private int minutes = 02;
private int seconds = 10;
public TaskToProgressBar(Context context, ProgressBar progressBar, TextView textView) {
this.progressBar = progressBar;
this.textView = textView;
}
@Override
protected void onPreExecute() {
textView.setText(getResources().getString(R.string.register_user_code_start_timer));
super.onPreExecute();
}
@Override
protected String doInBackground(Object... params) {
try {
Thread.sleep(1000);
for (int i=0; i<minutes*60+seconds; i++) {
publishProgress();
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Object... values) {
if(seconds>9)
textView.setText("0"+minutes+":"+seconds);
else
textView.setText("0"+minutes+":0"+seconds);
if(minutes*60+seconds == 120 || minutes*60+seconds == 60)
minutes--;
if(seconds == 0)
seconds = 59;
else
seconds--;
progressBar.incrementProgressBy(1);
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result) {
progressBar.setVisibility(ProgressBar.INVISIBLE);
textView.setText("00:00");
textView.setGravity(Gravity.CENTER_HORIZONTAL);
super.onPostExecute(result);
}
}
Desde já, brigadão.