要闻:app冷启动和热启动的区别_详解两者定义及区别
介绍一下 app 冷启动和热启动方式来实现 app 秒开的效果。那么,先来看看什么叫冷启动和热启动。
冷启动:指 app 被后台杀死后,在这个状态打开 app,这种启动方式叫做冷启动。
热启动:指 app 没有被后台杀死,仍然在后台运行,通常我们再次去打开这个 app,这种启动方式叫热启动。
(相关资料图)
那么,何为闪屏页呢?这个大家一般都知道,我们 app 也非常常见的。比如微信、QQ 等等应用,你将这些应用清除掉它们的后台运行的情况下,再去打开。这时候会出现一个闪屏页,类似我们的背景页。这个页面停留的时间非常短,一般不会超过 3秒,太久了就会使用户感觉这个 app 好卡的样子。
然后,我们看新建的一个项目,不做任何操作运行时会发现它在启动之时会有一个白屏的时间。那么,大部分 app 的解决方式就是我上面提到的闪屏页来替换白屏页。其实,也就是替换默认的 activity 的 theme。我们看看白屏的效果(其实在我点下的瞬间,已经是白屏了。模拟器也许屏蔽了,在手机上非常直观)
白屏效果
为什么替换?这就是提升我们的用户体验了,可以发现我们白屏页显得非常的难看,而且用户可能会误以为这是app卡的结果造成的。如果我们换成了闪屏页,不仅可以为app添加属于自己的脸面,也可以造成一种app秒开的假象。用户发现app已经被打开了,为何迟迟不进去,那可能是觉得手机不够给力啊,哈哈。
实现步骤
我们提到秒开app,不管它是一种假象也罢,既然市面上大部分的app都是这么处理的,不妨我们也学习一下。
一、设置 style 主题
首先,我们为闪屏页设置它的style,通常它是隐藏标题栏、隐藏状态栏、全屏的,然后用一张突显app主题的背景图片来填充整个屏幕。那么,我们这样设置它:
二、绑定到 Activity 上
然后,将这一主题运用到我们需要的activity上,比如我的SplashActivity:
最后,运行项目,你就会体会到什么叫做冷启动秒开应用了。我们先前的白屏页面,最终变成了一张自己的图片,即显得美观,又达到了秒开的目的,真是一举两得!
分析
注意:我们的SplashActivity不做任何初始化和设置布局,在onCreate中直接开启我们的MainActivity就行了。否则,在SplashActivity中停留过多的时间,就会出现卡在闪屏页许久才进入,我们的秒开也就变了味。
再说说我们的热启动实现方式,通常我们按下back键时,activity的生命周期会执行onStop,onDestory ——> onCreate。造成我们试图被销毁了又得重新创建。但是,我们按下home键却是不一样的,activity的生命周期会执行onStop ——>onReStart,所以热启动就是以back键替换成了home键,其实app是被置到了后台,所以当你再次点击打开app时,它会马上的启动。
但是,这类app通常是用于后台处理比较重要的,比如QQ后台接收信息,音乐播放器后台播放,通常都是屏蔽了back键,或者会有一个back键防误触操作。当然,这就得我们自己的app的自身需求了,通常做法就是将back键改为home键操作。
/** * App 热启动方式,实现应用程序秒开效果 */ @Override public void onBackPressed() { //直接返回桌面 ( Activity只执行onStop ) if (isStartHome()) { Intent intent = new Intent("android.intent.action.MAIN"); intent.addCategory("android.intent.category.HOME"); startActivity(intent); } else { super.onBackPressed();//( Activity将执行onDestory ) } }
一种优化启动的思路
这是我很久之前看到的一种思路,既然说到闪屏页,那就一并说明。它是利用EventBus,在application的创建时期不加载各种配置和各种库,而是先显示闪屏页。在闪屏页中,利用EventBus开启各种配置和库的加载(application中进行),等到这些库加载完毕后,再次利用EventBus发送事件进入主界面。
思路就是利用闪屏页的时间用于加载各种配置和库,而不是在application创建时就加载。我们看一下代码的实现方式
/** * @Created by xww. * @Creation time 2018/8/25. */ public abstract class WeatherAppclication extends Application { @Override public void onCreate() { super.onCreate(); //在此,先不加载库 EventBus.getDefault().register(this); } @Subscribe public void init(String event) { //在这里初始化一坨一坨的库 if ("initConfigurations".equals(event)) { Weather.init(this) .withApiHost("http://") .withApiKey("6439e059e16") .configure(); EventBus.getDefault().post("initSuccess"); EventBus.getDefault().unregister(this); } }}
/** * @Created by xww. * @Creation time 2018/8/25. */ public class SplashActivity extends AppCompatActivity { private static final String TAG = "SplashActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventBus.getDefault().register(this); EventBus.getDefault().post("initConfigurations"); } @Subscribe public void startMainActivity(String event) { if ("initSuccess".equals(event)) { //在这里加载所需库完成,进入主界面 startActivity(new Intent(SplashActivity.this, WeatherActivity.class)); finish(); } } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } /** * 屏蔽了返回键,避免在闪屏页中退出app */ @Override public void onBackPressed() { }}
我们的Log也可以很好的说明它们的执行顺序,成功的印证我们的思路是正确的。
这样的话,我们可以在启动 splash 页面加载一下库,然后加载完成后,进入主页面,由于资源都初始化好了,自然用起来就快一点,效果图:
这里我们点击桌面图标时,一启动的就是我们的 splash 的一张图,而不是白茫茫的背景了,看起来舒服了许多。
标签:
电脑
-
电脑开机时提示用户界面失败的原因是什么?无法加载登录用户界面的解决方法分享
在电脑开机之后,弹出了错误的提示用户界面失败:无法加载登录用户界面无法加载某个DLL文件,导致了电脑...
-
IE拒绝访问如何解决?IE拒绝访问原因及解决方法分享
我们在打开IE浏览器浏览某网页的时候,可能有遇到IE拒绝访问的提示,而IE拒绝访问的原因有很多,那么IE...
-
笔记本电脑连接wifi显示无internet怎么办?电脑连接wif方法分享
WiFi成为上网离不开的一样东西,近期一位小伙伴说笔记本电脑连接wifi显示无internet的情况,怎么回事呢?...
-
笔记本玩游戏独显不工作了是什么原因?有什么处理办法?
近期一些网友留言说笔记本玩游戏独显不工作了,这是什么情况?这可能是由于识别了集成显卡所导致,玩游戏...
硬件
- 如何利用vFloppy把启动软盘装进硬盘?具体操作步骤是什么?
- Win10主题背景变成黑色怎么办?Win10主题背景变成黑色解决办法分享
- 如何设置windows防火墙?windows防火墙设置方法分享
- 打印机如何双面打印?打印机双面打印方法分享
- 没有打印机怎么打印预览?没装打印机无法预览的解决技巧分享
- 打印机怎么装墨水?打印机装墨水教程分享
- tm220打印机怎么安装?爱普生tmu220安装步骤分享
- 热敏打印机不出字怎么办?有哪些解决方法?
- 惠普打印机1000无法连接电脑是什么原因?有什么解决办法?
- 网线怎么接?网线接头顺序是什么?
- win10任务栏频繁卡死的原因有哪些?win10任务栏频繁卡死的解决方法是什么?
- 电脑怎么一键还原系统?一键还原系统方法分享
- 开机bios检测不到硬盘原因是什么?有什么解决方法?
- 没有鼠标可以控制电脑吗?键盘怎么控制电脑?
- 要闻:app冷启动和热启动的区别_详解两者定义及区别
- 小米电视语音唤醒功能在哪?小米电视开启语音唤醒教程分享
- ChatGPT是什么?ChatGPT应用范围有哪些?
- 空调噪音大具体有哪些原因所致?要如何解决?
- 世界资讯:简佳:美国银行业危机暂时缓解 但脆弱性依然偏高
- 酷狗怎么把音乐下到U盘里?有哪些具体操作方法?
- 浙江工业大学邮箱系统-浙江工业大学校园网邮箱用户名及密码
- 南昌梅岭一日游攻略
- 世界新资讯:多年无户口 民警倾力解民忧
- 每日聚焦:犀牛肉哪里打
- 【全球报资讯】81192事件 三大耻辱
- 当前播报:上海市旅游景点及收费标准
- 环球热资讯!一本大学排名及分数线河北_一本大学排名及分数线
- 当前热议!2021杭州年夜饭去哪吃 杭州年夜饭餐厅推荐
- 快报:返利科技将于3月20日解禁3746.16万股
- 热议:公务员考试过程介绍
- 天天简讯:家长建议和意见怎么写 有哪些对孩子的期望和要求
- 当前看点!vi是什么词性?
- 笔画最怪异的字1亿画怎么读_笔画最多且怪异的字体读法
- 去苏州最值得去的8个地方
- 实时焦点:浪潮软件(600756)龙虎榜数据(03-14)
- 【当前独家】高中文科包括哪些科目
- 环球观速讯丨成考和自考的区别
- 当前报道:丰田最便宜的车是哪款
- 全球讯息:新闻格式怎么写
- 醉驾刑事责任对孩子有影响吗?
- 自考本科考哪几门
- 天天快资讯丨鲤鱼不能和什么一起吃
- 当前观点:学电脑的基本知识
- 连续三年充“植” 石狮坑东村一荒坡变成桃花林
- 基于反吸烟运动的反营销减少了儿童含糖水果饮料的购买
- 每日短讯:部落冲突八本阴阳阵图步骤_2020部落冲突八本神阵
- 焦点资讯:tv盒子助手电脑版3.0_tv盒子助手电脑版
- 世界今日讯!硅谷银行的48小时与40年事件简单介绍
- 碧桂园活下来的代价
- 全球热议:俄罗斯特产有哪些值得买_俄罗斯有什么吃的值得买的
- 当前关注:安徽华业建工集团有限公司介绍
- 世界热讯:击败“大魔王”!杨紫琼成首位华裔奥斯卡影后
- 今日播报!林州市气象局发布大风蓝色预警【IV级/一般】【2023-03-13】
- 中型SUV排行榜前十名,第一名居然是它
- 今亮点!富瑞:维持佐丹奴国际“买入”评级 目标价升至2.9港元
- 焦点热门:嘉益股份3月13日快速回调
- 京a00001蓝牌是谁的车
- 每日观点:水果月饼哪个品牌好吃_月饼哪个品牌好吃不贵2020
- 含羞草可以剪枝吗 含羞草能不能剪枝
- 【环球时快讯】凯迪拉克srx价格二手车 二手凯迪拉克srx值得入手么
- 全日制专科是什么意思 专科学校都是全日制的吗
- 全球热文:全画幅微单相机排行2020_2020最值入手的4款全画幅相机
- 全球热门:用心良苦的意思什么_用心良苦的意思
- 世界消息!电脑挣钱方法有哪些,利用电脑赚钱的5种方法
- 泰州有什么特产 泰州特产哪些可以带走
- 2019高考350分可以上的大学 350分左右能上什么学校
- 酸奶虽好也有禁忌 酸奶不宜与某些药物同服
- 瑞士考虑冻结俄罗斯在瑞士资产_瑞士称或制裁俄罗斯
- 焦点要闻:淘宝网怎么投诉卖家_12315平台,投诉淘宝维权
- 当前热点-汽车零部件:德国研制出可再生复合材料汽车零部件
- 天天热资讯!CCTV5直播调整,国足18点亚洲杯战韩国,邵佳一目标晋级四强
- 无锡十大最受欢迎景点:太湖上榜,它因范蠡而闻名
- 全球看热讯:黑牌车是什么车辆
- 环球即时:五菱宏光mini有补贴吗
- 标题党最出名的几条案例_非常吸引眼球的推文标题应该这样写
- 全球快消息!奔驰suv车型30万左右 30万的奔驰suv车型推荐
- 环球聚焦:无法忍受电影完整版_关于无法忍受电影完整版的基本详情介绍
- 当前看点!汉语言文学所学科目
- 世界即时:家用越野车15万左右 15万左右内口碑最好的车
- 福特野马价格多少钱一辆 福特野马最低价格41.58万
- 湖北省全民健身“赶集会”(恩施站)在鹤峰圆满收官
- 观点:豫q车牌是河南哪个地区的
- 朱昌耀演奏浏阳河_朱昌耀
- 【环球快播报】10月中旬旅游适合去哪里玩
- 环球热消息:长安欧尚cx70a新款 长安欧尚cx70a中规中矩售价5万起
- 2020互联网最挣钱82项目_揭晓未来互联网赚钱的多种方式
- 全球速看:老想吃东西是怎么回事?总想吃东西还控制不住怎么办?
- 【世界新要闻】如何消除蔬菜水果中的残留农药 让家里的果蔬吃起来更健康
- 环球关注:宝马变速箱是什么牌子
- 每日观点:绘说两会 | 这些“新”字与你有关
- 全球要闻:哈尔滨四维彩超团购有这回事
- 焦点观察:谁有中华电子书库的电子书
- 儿童用什么电动牙刷好?平价的儿童电动牙刷排行榜10强
- 天天要闻:迈巴赫有商务车吗
- 环球速讯:遭嫌弃却深含大营养的食物 难吃却最营养
- 今日热讯:雷诺车属于什么档次 属于中上等的档次
- 环球观热点:全球乳胶漆什么牌子好?世界乳胶漆十大排名榜
- 豫m车牌是河南哪个地区的
- 每日讯息!冯钰棋是什么人
- pptv是什么电视_pptv是什么
- 吃了红薯不能吃什么
- 【环球播资讯】长城哈弗h6路虎款 大家清楚哈弗h6车型众多亮点吗
- 2021苏州好吃的羊肉店 苏州好吃的羊肉推荐
- 焦点精选!混合动力汽车有哪些
- 早餐的四种健康吃法 不吃早餐的危害
- 辽宁海城属于哪个城市_辽宁海城属于哪个市管辖
- 天天头条:淘宝怎么刷关键字_教你4点做好刷标题关键词
- 天天快消息!2018全年七座SUV销量排行榜前十名车型 国产车做的越来越好
- 当前视讯!2019世界大学化学排名
- 【世界速看料】城郊公路赛车
- 天天播报:用西加偏旁组新字-西加一个什么偏旁能组成一个字
- 天天快资讯丨技嘉和华硕主板哪个好些(技嘉和华硕主板哪个好)
- 羞愧的近义词是
- 【全球聚看点】劳务输出公司
电竞
数码
事件
- 【天天快播报】美国总统拜登签署扩大枪支购买背景调查的行政令03-15
- 突发!美军无人机黑海坠毁,俄方声明03-15
- 事发青岛街头!27张百元大钞撒落一地,监控拍下暖心一幕……03-15
- 头条焦点:公司观察 | 中科蓝智:一株藻的“裂变”;康立泰:全面发力细胞因子赛道03-15
- “沉睡”5年,百丽广场项目有望今年开始动工建设!03-15
- 大项目现场看开局⑧ | 海湾化学这一项目构建高端新材料及复合材料产业链03-15
- 野生亚洲象坠入深水坑!象救不了,人来了03-14
- 从长沙出发,体重超过1000吨!青岛地铁三期首台正线掘进设备抵达5号线03-14
- 30家韩国企业将在青岛成立贸易公司,与青企合作开展跨境电商业务03-14
- 环球今日讯!拧紧消防产品质量“安全阀”,青岛集中销毁1000件不合格消防产品03-14
- 青岛唯一有人售票线路上新啦!快来抢限量版主题车厢特色套票03-14
- 世界快消息!严禁以权谋私、索拿卡要!青岛出台“卫生健康廉洁执法十条禁令”03-14
- 【世界独家】市教育局副局长韩东做客民生在线:青岛正探索多种学生午休方式03-14
- 全球观热点:观海杂话铺384 | 欢迎进入“花花世界”!这个春天,又被青岛浪漫到了!03-14
- 当前速递!以青春力量展现青岛风采,2023山东省旅游发展大会志愿者培训工作顺利完成03-14