Пример AsyncTask с хронометром
У меня есть хронометр, но когда я меняю свой вид (с помощью ActionBar), он останавливается.
Я не очень понимаю, как использовать AsyncTask, и я не нашел учебник.
Есть ли что-то простое, чтобы решить мою проблему? Я бы очень хотел пример с хронометром...
Спасибо большое!
Код до сих пор:
public class BFragment extends SherlockFragment {
private Button start;
private View v;
private Chronometer chrono;
private Button pause;
private Button reset;
private long lastPause;
private Button resume;
private Boolean richtig;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
v = inflater.inflate(R.layout.activity_bfragment, container, false);
start = (Button) v.findViewById(R.id.start);
chrono = (Chronometer) v.findViewById(R.id.chronometer1);
pause = (Button) v.findViewById(R.id.pause);
reset = (Button) v.findViewById(R.id.reset);
resume = (Button) v.findViewById(R.id.resume);
richtig = true;
new chronom().execute();
return v;
}
private class chronom extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
start.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
System.out.println(SystemClock.elapsedRealtime());
richtig = false;
}
});
pause.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
lastPause = SystemClock.elapsedRealtime();
chrono.stop();
richtig = true;
}
});
resume.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if (richtig) {
chrono.setBase(chrono.getBase() + SystemClock.elapsedRealtime() - lastPause);
chrono.start();
} else {
}
}
});
reset.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
chrono.setBase(SystemClock.elapsedRealtime());
System.out.println(chrono.getBase());
richtig = false;
}
});
return null;
}
protected void onProgressUpdate(Integer... progress) {
}
protected void onPostExecute(Long result) {
}
}
}
Я просто скопировал код... (Chrono работает, но не в фоновом режиме)