- onRestart(), 表示Activity正从停止状态重新启动,如果当前Activity状态从不可见到可见,则会被调用。示例代码如下:
@Override
protected void onResume(){
super.onResume();
}
- onResume(), 页面即将可见,在此之后Activity出现在前台并开始活动。此方法在Activity获得焦点开始与用户交互时调用。示例代码如下:
@Override
protected void onResume(){
super.onResume();
}
- onPause(), 表示Activity正在停止,一般在当前Activity被其他Activity覆盖或者锁屏时调用,示例代码如下:
@Override
protected void onPause(){
super.onPause();
}
- onStop(), 表示Activity即将停止,Activity对用户不可见时调用,示例代码如下:
@Override
protected void onStop(){
super.onStop();
}
- onDestory(), 表示Activity即将销毁,是Activity生命周期最后一个回调,在此时可以做些会手工作和最后的资源释放,示例代码如下:
@Override
protected void onDestory(){
super.onDestory();
}
根据以上的生命周期方法,完成对应的工作,就能将Activity完整的显示出来,得到我们想要的结果。
Activity切换时候生命周期的变化
- 当Activity A 切换到Activity B 时:
-
执行A的onPause();
-
执行B的onCreate() → onStart() → onResume()方法;
-
如果B是不透明的,则A将被完全隐藏,此时A完全不可见,执行A的onStop()方法;
- 在B中按下返回键回到A时:
-
执行B的onPause();
-
执行A的onRestart() → onStart() → onResume() 方法;
-
执行B的onStop() → onDestory()方法;
启动Activity须注意:
- 当启动Activity时有一个限制:必须在AndroidManifest.xml中显示声明使用的Activity,否则则会出现以下报错:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.cy59.intercept_activity.app/com.cy59.intercept_activity.app.TargetActivity}; have you declared this activity in your AndroidManifest.xml?
学习福利
【Android 详细知识点思维脑图(技能树)】
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在GitHub点击可见;
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。