前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >App冷启动与启动白屏处理

App冷启动与启动白屏处理

作者头像
蜻蜓队长
发布2018-08-03 15:12:31
1.5K0
发布2018-08-03 15:12:31
举报
文章被收录于专栏:Android机动车
近日在开发过程中,发现每次点击app从桌面启动都有一个在桌面明显的等待时间,机型越低端的越明显,冷启动优化看来已经势在必行,所以怒而一顿研究再解决之。

1冷启动

  • 第一次启动、被用户杀死进程或系统自动回收进程后,整个app后台任务被清理,再次启动app,称为 冷启动
  • 特点:后台任务全部结束,回收进程

2热启动

  • 用户点击返回键退回界面,后台任务没有杀死,再次点击启动app,称为 热启动
  • 特点:未清理后台任务,再次启动

3为什么出现白屏

  • 在一个Activity打开时,如果该Activity所属的Application还没有启动,系统会为这个Activity创建一个进程;
  • 每创建一个进程,都会执行一次Application的onCreate()方法;
  • Application的onCreate方法执行完后,启动的Activity的onCreate方法才会开始执行;
  • 在Application的onCreate方法中执行耗时间的操作,就会出现白屏。

4如何避免

  1. 尽量不让Application参与业务操作;
  2. 不在Application的onCreate中执行耗时任务 比如:创建文件等IO操作,应在使用时再创建;
  3. 不以静态变量的的方式在Application中保存数据。

5白屏如何解决

大致有以下三种方法:

  • 使用IntentService实现异步处理耗时的操作;
  • 将背景图设置成我们APP的Logo图,作为APP启动的引导,现在市面上大部分的APP也是这么做的
  • 将背景颜色设置为透明色,在启动页出现前屏幕一直显示桌面
推荐使用第一种解决方法,当然,三个方法结合使用效果更好

6举例

普通处理

耗时长:

IntentService处理

耗时长:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android机动车 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 近日在开发过程中,发现每次点击app从桌面启动都有一个在桌面明显的等待时间,机型越低端的越明显,冷启动优化看来已经势在必行,所以怒而一顿研究再解决之。
  • 1冷启动
  • 2热启动
  • 3为什么出现白屏
  • 4如何避免
  • 5白屏如何解决
    • 推荐使用第一种解决方法,当然,三个方法结合使用效果更好
    • 6举例
      • 普通处理
        • IntentService处理
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档