android - 安卓应用冷启动如何避免开机白屏?
黄舟
黄舟 2017-04-18 09:16:42
0
5
727

我一直以为只要在 application的theme下设置background就好了,(同类型解决方法还有设置为透明)
但是今天在实际测试中发现,
在oppo m37a 上是有效果的(api 22)
但是在红米4 上发现是没有效果的!(api23)

我尝试打开红米4上多款应用发现:

  • 瞬间打开且没有白屏

    1. 高德地图

    2. 掘金

    3. segmentfault

    4. 手机淘宝

    5. 印象笔记

    6. 等。。。

  • 有白屏

    1. 知乎日报

    2. 扇贝单词

    3. 人民日报

    4. 摩拜单车

  • 没有白屏,但是点击icon 会延迟一会才打开

    1. 简书

    2. UC浏览器

    3. 支付宝

    如果是白屏或者是“延迟打开”,我觉得可以办到

那要怎样才能做到segmentfault ,手机淘宝这样呢?

启动第一个activity,这个activity 只是为了作为背景显示,把一些初始化的工作放到第2个activity中?
这样的话做法好奇怪啊?应该有什么更直接的方案吧?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(5)
巴扎黑

Jika anda ingin menetapkan background, ia juga sepatutnya windowBackground Anda tidak memerlukan dua aktiviti untuk melaksanakannya. Jika ia mencapai tahap ini, kemungkinan besar aplikasi atau aktiviti utama anda juga banyak kerja utas utama.

左手右手慢动作

Tetapkan permulaan kepada telus dan tambahkan kod berikut pada fail tema

<item name="android:windowDisablePreview">true</item>
PHPzhong

<style name="welcomeTheme" parent="AppTheme">

    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

Tetapkan tema dan sebutkan di sini
<aktiviti

        android:name=".Activity.LoadingActivity"
        android:theme="@style/welcomeTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    
巴扎黑

Jika anda perlu melakukan terlalu banyak kerja dalam aplikasi, saya mempunyai kaedah mudah, yang boleh dimulakan melalui proses melalui mod berbilang proses Proses kedua bertanggungjawab untuk memulakan antara muka penyelamat skrin apabila proses utama dimulakan dan dimulakan. Apabila proses utama melengkapkan permulaan, ia dihantar ke Proses kedua keluar dan antara muka proses utama dimulakan Ini mengelakkan masalah permulaan awal yang terlalu lambat yang disebabkan oleh pengamulaan aplikasi yang berlebihan.

左手右手慢动作

Pertama-tama jelaskan mengapa skrin putih berwarna putih, dan kemudian ubah suai mengikut kod perniagaan anda sendiri
Apabila ikon desktop diklik, Aktiviti pertama Apl akan dibuka sebelum Aktiviti dibuat Aplikasi boleh dibuat. Tahu Halaman pertama sebenarnya dilihat selepas onResume Aktiviti sebelum itu, ia boleh difahami sebagai masa skrin putih (menggunakan teknologi hitam untuk mengubah suai tema tidak dipertimbangkan). bermakna mengurangkan masa yang digunakan oleh proses ini, kaedah yang mudah dan kasar ialah meletakkan permulaan pakej bergantung ini pada halaman Splash dan melaksanakannya selepas onResume
Saya sangat malas sehingga saya tidak mahu menaip. ..
Sebenarnya, apabila anda menghadapi pelbagai masalah, anda perlu menyelesaikannya sendiri Contohnya, permulaan sahaja Ia mengambil masa ratusan milisaat Anda boleh menambah pertimbangan yang lebih praktikal tiada halaman Percikan, anda boleh meletakkan permulaan pada halaman utama, dan kemudian melakukan operasi lain selepas permulaan Untuk contoh lain, jika anda mengulangi permulaan, anda boleh menambah pembolehubah statik untuk menandakan sama ada Dimulakan.
Ringkasannya adalah untuk. cari tempat yang mengisi masa sebelum onResume Aktiviti pertama, untuk pengoptimuman (ia juga mungkin penghuraian imej, pemaparan reka letak...)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan