漫画:越挫越勇

1,838 阅读3分钟

本系列漫画故事,纯属虚构,若有雷同,请对号入座。

左小白 Java 基础薄弱,上次面试被暴露无遗,虽然学校里学过,但是工作来就一直做 Android,那些 Java 基础都还给老师来,但为了不要再栽在 Java 上,左小白恶补了 Java 面试题,不久,又有面试电话来了。

左小白把事前准备好的 APP 打开了,递给了面试官。

咦,这个面试官,挺好的,小白心里暗喜。

擦,好像答错了,应该先 onPause,再 onStop。

这么快结束了啊,看样子这次面试又挂了!

又是等通知,等了几天,依旧没结果,左小白伤心了,面试官挺好的,面试的也较基础,只能怪自己学艺不精,能力不够。他总结要回顾了下自己在项目遇到了什么问题,面试官可能会从中考察,必须要搞明白,不然自己做的项目,却不知道,那岂不是很尴尬;虽然这次没怎么考察 Java,但也得要看看,还得刷题。

附面试题答案

1、Activity 启动模式

standard

默认启动模式,在这种模式下启动的 Activity 可以被多次实例化,即在同一个任务中可以存在多个 Activity 的实例。

singleTop

如果一个以 singleTop 模式启动的 Activity 的实例已经存在于任务桟的桟顶,那么再启动这个 Activity 时,不会创建新的实例,而是重用位于栈顶的那个实例,并且会调用该实例的 onNewIntent() 方法将 Intent 对象传递到这个实例中。

singleTask

singleTask 模式的 Activity 只允许在系统中有一个实例。如果系统中已经有了一个实例,持有这个实例的任务将移动到顶部,同时 intent 将被通过 onNewIntent() 发送。如果没有,则会创建一个新的 Activity 并置放在合适的任务中。

singleInstance

总是在新的任务中开启,并且这个新的任务中有且只有这一个实例,也就是说被该实例启动的其他 Activity 会自动运行于另一个任务中。

2、Activity 生命周期

正常启动

onCreate –> onStart –> –> onResume –> onPause –> onStop –> onDestroy

防止变相考察:

转向下一个 Activity: onPause –> onStop

从下一个 Activity 返回当前(按机器返回键): onRestart –> onStart –> onResume

转向上一个 Activity(按机器返回键): onPause –> onStop –> onDestory

屏幕待机(黑掉): onPause

屏幕变亮: onResume

Home 键退出: onPause –> onStop

Home 键导航返回: onRestart –> onStart –> onResume

3、图片框架

Android-Universal-Image-Loader 是比较早也是比较有名的的图片加载框架,现在作者已经不维护了,当下推荐 Glide,另外也要对图片加载原理适当了解。

4、自定义 View

主要有三个流程,onMeasure 测量,onLayout 布局, onDraw 绘制,当然想更好自定义 View,还得深入 Canvas 画布,Paint 画笔。

还有 1 分钟就下班了,这个时候看到领导的头像在闪:
又在下班搞事情,这不逼着左小白加班嘛!哎,谁让自己是底层码农,劳动廉价,乖乖加班吧。