Seperti yang kita semua ketahui, banyak aplikasi Android menampilkan layar putih dengan sangat singkat sebelum aplikasi pertama Activitydifokuskan. Masalah ini diamati dalam kasus berikut:
Aplikasi Android yang memperluas
Applicationkelas global dan melakukan inisialisasi utama di dalamnya. TheApplicationobjek selalu dibuat sebelum pertamaActivity(sebuah fakta yang dapat diamati di debugger), jadi ini masuk akal. Inilah penyebab keterlambatan dalam kasus saya.Aplikasi Android yang menampilkan jendela pratinjau default sebelum splash screen.
Pengaturan android:windowDisablePreview = "true"jelas tidak berfungsi di sini. Saya juga tidak dapat menyetel tema induk layar splash Theme.Holo.NoActionBarseperti yang dijelaskan di sini , karena [sayangnya] layar splash saya menggunakan file ActionBar.
Sementara itu, aplikasi yang tidak memperluas Applicationkelas tidak menampilkan layar putih saat pengaktifan.
Masalahnya, idealnya inisialisasi yang dilakukan di Applicationobjek perlu terjadi sebelum yang pertama Activityditampilkan. Jadi pertanyaan saya adalah, bagaimana saya bisa melakukan inisialisasi ini pada startup aplikasi tanpa menggunakan Applicationobjek? Mungkin menggunakan Threadatau Service, saya kira?
Ini adalah masalah yang menarik untuk dipikirkan. Saya tidak dapat mem-bypassnya dengan cara biasa (dengan mengatur NoActionBartema), karena tragisnya layar Splash saya sebenarnya memiliki ActionBarbeberapa alasan yang tidak terkait.
catatan:
Saya telah merujuk pada pertanyaan-pertanyaan berikut:
Bagaimana cara memperbaiki layar putih pada aplikasi Start up?
Mengapa ada layar putih muncul selama 1 detik saat mulai menjalankan aplikasi di Android?
Referensi:
Applicationkelas. Hal ini disebabkan oleh cara Android yang lebih baru untuk "memulai secara dingin" aplikasi. Google sebenarnya membahas waktu peluncuran di Google I / O tahun ini dan itu akan diperbaiki di N dari yang saya ingat. Sementara itu, Anda harus melihat apa yang disebut Google sebagai "layar peluncuran bermerek". Berikut adalah contoh cara membuatnya: antonioleiva.com/branded-launch-screen - tidak ada lagi layar putih di awal ;-) Dan tolong jangan gunakan splashscreens - itu mengganggu pengguna.


