อย่างที่เราทราบกันดีว่าแอพ Android จำนวนมากแสดงหน้าจอสีขาวสั้น ๆ ก่อนที่จะActivity
เข้าสู่โฟกัสครั้งแรก ปัญหานี้เกิดขึ้นในกรณีต่อไปนี้:
แอป Android ที่ขยายระดับสากล
Application
และดำเนินการเริ่มต้นที่สำคัญในนั้นApplication
วัตถุที่ถูกสร้างขึ้นเสมอก่อนที่จะเป็นครั้งแรกActivity
(ความจริงที่สามารถสังเกตได้ในการดีบัก) ดังนั้นนี้ทำให้รู้สึก นี่คือสาเหตุของความล่าช้าในกรณีของฉันแอพ Android ที่แสดงหน้าต่างแสดงตัวอย่างเริ่มต้นก่อนหน้าจอเริ่มต้น
android:windowDisablePreview = "true"
เห็นได้ชัดว่าการตั้งค่าไม่ทำงานที่นี่ ฉันไม่สามารถตั้งค่าธีมหลักของหน้าจอเริ่มต้นTheme.Holo.NoActionBar
เป็นตามที่อธิบายไว้ที่นี่ได้เนื่องจาก [น่าเสียดาย] หน้าจอเริ่มต้นของฉันใช้ActionBar
ไฟล์.
ในขณะเดียวกันแอปที่ไม่ขยายApplication
ชั้นเรียนจะไม่แสดงหน้าจอสีขาวเมื่อเริ่มต้น
สิ่งนี้คือหลักการเริ่มต้นที่ดำเนินการในApplication
วัตถุจำเป็นต้องเกิดขึ้นก่อนที่Activity
จะแสดงครั้งแรก ดังนั้นคำถามของฉันคือฉันจะทำการเริ่มต้นเหล่านี้ในการเริ่มต้นแอปโดยไม่ใช้Application
วัตถุได้อย่างไร อาจใช้ a Thread
หรือService
ฉันคิดว่า?
นี่เป็นปัญหาที่น่าคิด ฉันไม่สามารถข้ามมันได้ตามปกติ (โดยการตั้งค่าNoActionBar
ธีม) เนื่องจากน่าเศร้าที่หน้าจอ Splash ของฉันมีActionBar
สาเหตุที่ไม่เกี่ยวข้องกัน
บันทึก:
ฉันได้อ้างถึงคำถามต่อไปนี้แล้ว:
อ้างอิง:
รูปแบบ - หน้าจอเปิดตัว
หน้าจอ Splash ทางขวา
Application
ชั้นเรียนแล้ว นี่เป็นเพราะวิธีการ "เริ่มเย็น" ของ Android เวอร์ชันที่ใหม่กว่า Google ได้กล่าวถึงเวลาเปิดตัวที่ Google I / O ในปีนี้และจะได้รับการแก้ไขเป็น N จากที่ฉันจำได้ ในระหว่างนี้คุณควรดูสิ่งที่ Google เรียกว่า "หน้าจอเปิดตัวที่มีตราสินค้า" นี่คือตัวอย่างวิธีการสร้าง: antonioleiva.com/branded-launch-screen - ไม่มีหน้าจอสีขาวในตอนแรกอีกต่อไป ;-) และโปรดอย่าใช้ splashscreens - มันน่ารำคาญสำหรับผู้ใช้