SplashActivity.kt
class SplashActivity : AppCompatActivity() {
private val handler = Handler()
private val runnable = Runnable {
// write code that you want to delay. for example,
startActivity(NextActivity.createIntent(this))
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)
handler.postDelayed(runnable, 500)
}
override fun onStop() {
super.onStop()
handler.removeCallbacks(runnable)
}
onPause()
もしくはonStop()
でremoveCallbacks
してあげないと、delay中にアプリを終了した場合に一定時間経ってアプリが勝手に立ち上がるという怪現象が起きます。気をつけましょう。👾
Is the splash screen necessary?
「postDelayedしてまでSplash画面を表示する必要があるか?」という検討は必要です。
今回は、毎起動時に同じ時間delayする画面を表示することでテンポよく画面遷移したいという理由で実装しました。
How much delay time the best?
個人の体感ですが、500〜1000msがベストだと思います。
Links
- Androidでスプラッシュ画面を作る方法
http://qiita.com/glayash/items/646e5c0d5de82cfc17bc