Zdefiniowałem ekran powitalny, który ma być wyświetlany podczas ładowania. Ale w zależności od połączenia internetowego ładowanie może trwać tylko 600ms, a czasem 5000ms. Tak więc zdefiniowałem, że ekran powitalny ma co najmniej 3000 ms, więc użytkownik nie jest zirytowany przez migotanie ekranu.Handler.sendMessageDelayed (msg, delay) nie działa poprawnie
zdefiniować początek splasha następujący sposób:
private void splashScreen() {
setContentView(R.layout.splashscreen);
splash = (ImageView) findViewById(R.id.splashscreenLayer);
startSplashTime = new Date();
new LoadingThread().start();
}
W LoadingThread sprawdzić sieć i ładowanie danych z Internetu:
private class LoadingThread extends Thread {
@Override
public void run() {
checkNetwork();
}
}
Gdy tylko ładowanie odbywa, Wysyłam wiadomość do mojego handlera zdefiniowaną w MainActivity:
Jakiś kod lin es na ładowaniu są odbierane przez runOnUIThread(). Niestety, jeśli czas < SPLASH_MIN_TIME wiadomość nie jest opóźniona, ale natychmiast wysłać. Myślę, że z sendMessageDelayed() tak nie powinno być. Ktoś wie dlaczego? Sysout pokazuje, że czas opóźnienia jest obliczany poprawnie. Dzięki!
Czy możesz dodać kod, jak zainicjować Handler i kod wewnątrz klasy Handler? – user697495