onCreate 에 시간이 걸릴것같은 작업이 있으신건가요?
그래서 그 로딩시간을 표현하시려고 onCreate에서 로딩 다이얼로그를 표현하시려 했던것이라면..
접근이 틀리지 않았나 싶네요.
Handler 가 왜 늦게 호출되는지는 다른분들이 설명해주신듯 하고, 다른 부분을 말씀드리자면..
안드로이드의 메인 쓰레드에서 오래 걸릴듯한 작업은 서브 쓰레드를 구현해서 그곳을 이용해 처리하도록 권장하고 있습니다. 물론 이는 안드로이드 뿐만이니라 다른 플랫폼에서도 마찬가지지요. 따라서 onCreate 에서 오래 걸릴법한 작업은 따로 Thread 를 통해서 작업하셔야 하며, 이 쓰레드에서 dialog 를 표현하는 방법으로 구현을 하셔야 하지 않을까 싶습니다.
안드로이드에서 이러한 부분을 플랫폼적으로 제약하고 있는데 이를 'ANR(Application Not Responding)' 이라고 하며,
만약 Thread 를 사용하시지않고 onCreate 에서 작업을 진행하시다가 5초 이상 지연 될경우 앱은 여지없이 ANR 오류를 뿜으며, 사용자에게 위협을 가할것입니다.