Я определил заставку, которая будет отображаться во время загрузки.Но в зависимости от подключения к Интернету загрузка может занять всего 600 мс, а иногда и 5000 мс.Итак, я определил, что заставка показывается как минимум 3000 мс, чтобы пользователь не раздражался мерцающим экраном.
Я определяю запуск заставки следующим образом:
private void splashScreen() {
setContentView(R.layout.splashscreen);
splash = (ImageView) findViewById(R.id.splashscreenLayer);
startSplashTime = new Date();
new LoadingThread().start();
}
ВLoadingThread Я проверяю сеть и загружаю данные из Интернета:
private class LoadingThread extends Thread {
@Override
public void run() {
checkNetwork();
}
}
Как только загрузка завершена, я отправляю сообщение своему обработчику, определенному в MainActivity:
public void stopSplash() {
Message msg = new Message();
msg.what = STOPSPLASH;
Date endSplashTime = new Date();
long time = endSplashTime.getTime() - startSplashTime.getTime();
System.out.println("Time Splashscreen was displayed: " + time);
if (time < SPLASH_MIN_TIME) {
long delay = SPLASH_MIN_TIME - time;
System.out.println("Delay Splashscreen for: " + delay);
splashHandler.sendMessageDelayed(msg, delay);
} else {
System.out.print("Show Splashscreen now");
splashHandler.sendMessage(msg);
}
}
НекоторыеСтроки кода в LoadThreads вызываются runOnUIThread ().К сожалению, если время