Seperti yang kita semua ketahui, banyak aplikasi Android menampilkan layar putih dengan sangat singkat sebelum aplikasi pertama Activity
difokuskan. Masalah ini diamati dalam kasus berikut:
Aplikasi Android yang memperluas
Application
kelas global dan melakukan inisialisasi utama di dalamnya. TheApplication
objek 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.NoActionBar
seperti yang dijelaskan di sini , karena [sayangnya] layar splash saya menggunakan file ActionBar
.
Sementara itu, aplikasi yang tidak memperluas Application
kelas tidak menampilkan layar putih saat pengaktifan.
Masalahnya, idealnya inisialisasi yang dilakukan di Application
objek perlu terjadi sebelum yang pertama Activity
ditampilkan. Jadi pertanyaan saya adalah, bagaimana saya bisa melakukan inisialisasi ini pada startup aplikasi tanpa menggunakan Application
objek? Mungkin menggunakan Thread
atau Service
, saya kira?
Ini adalah masalah yang menarik untuk dipikirkan. Saya tidak dapat mem-bypassnya dengan cara biasa (dengan mengatur NoActionBar
tema), karena tragisnya layar Splash saya sebenarnya memiliki ActionBar
beberapa 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:
Application
kelas. 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.