Я хочу создать заставку в Android. Во время загрузки заставки загрузчик изображений попытается получить более новую заставку с сервера, а затем более новое изображение будет сохранено в локальном хранилище и использовано в качестве изображения заставки при следующем запуске. И заставка останется на 5 секунд, а затем перейдет к основному действию. Также нам нужен счетчик обратного отсчета на заставке.
Я могу использовать Observable.interval, чтобы закрыть заставку по завершении и обновить счетчик при следующем испускании. Но должен ли я загружать изображение при запуске счетчика, а тайм-аут для задачи получения изображения также составляет 5 с, если мы не смогли получить изображение, а затем отменить задачу?
splash_sub = Observable
.interval(SPLASH_INTERVAL, TimeUnit.SECONDS) //to emit event every 1s
.take(SPLASH_DURATION) //limit the event number to 5, i.e. 5s to complete
.subscribeOn(Schedulers.newThread()) //timer and event emitting run in background
.observeOn(AndroidSchedulers.mainThread()) //subscriber callback run in UI thread
.subscribe(new Observer<Long>() {
@Override
public void onCompleted() {
dismissSplash(); //dismiss the Splash Screen and enter the Main Activity
}
@Override
public void onError(Throwable e) {
Toast.makeText(getApplicationContext(), "Error!", Toast.LENGTH_SHORT).show();
}
@Override
public void onNext(Long aLong) {
Log.d(TAG, aLong.toString());
textView.setText(String.format("%s", aLong));
}
});