Использование класса CountDownTimer в стороне от расширенного класса для AsyncTask в методе onPreExecute ():
Основное преимущество - асинхронный мониторинг, выполняемый внутри класса.
public class YouExtendedClass extends AsyncTask<String,Integer,String> {
...
public YouExtendedClass asyncObject; // as CountDownTimer has similar method -> to prevent shadowing
...
@Override
protected void onPreExecute() {
asyncObject = this;
new CountDownTimer(7000, 7000) {
public void onTick(long millisUntilFinished) {
// You can monitor the progress here as well by changing the onTick() time
}
public void onFinish() {
// stop async task if not in progress
if (asyncObject.getStatus() == AsyncTask.Status.RUNNING) {
asyncObject.cancel(false);
// Add any specific task you wish to do as your extended class variable works here as well.
}
}
}.start();
...
например, измените CountDownTimer (7000, 7000) -> CountDownTimer (7000, 1000), и он вызовет onTick () 6 раз перед вызовом onFinish (). Это хорошо, если вы хотите добавить мониторинг.
Спасибо за все полезные советы, которые я получил на этой странице: -)