일반적인 수준으로 답변드려 봅니다.
startActivity를 할때 3~5초의 딜레이가 생기는 이유는..
onCreate 또는 onResume에서 시간이 오래걸리는 작업이 있기 때문입니다.
( 오래걸리는 작업은 network 통신이나, 파일로딩이나, 무거운 resource( 주로 이미지등) 로딩 등등이겠죠.. )
일반적인 해결책은 오래걸리는 작업을 뒤로 늦추어서 실행키시는 방법입니다.
보통은 LazyInitialize 라는 패턴으로 구현가능합니다.