五面阿里拿下飞猪事业部offer,跳槽薪资翻倍
作者:互联网
### 最后我想说
**为什么很多程序员做不了架构师?**
1、良好健康的职业规划很重要,但大多数人都忽略了
2、学习的习惯很重要,持之以恒才是正解。
3、编程思维没能提升一个台阶,局限在了编码,业务,没考虑过选型、扩展
4、身边没有好的架构师引导、培养。所处的圈子对程序员的成长影响巨大。
金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!**在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。**
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
![](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625491825356563.jpg)
**里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…**
* ##### **[点击这里免费领取](https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**
### 1、四大组件是什么?
> * Activity【活动】:用于表现功能。
> * Service【服务】:后台运行服务,不提供界面呈现。
> * BroadcastReceiver【广播接收器】:用来接收广播。
> * Content Provider【内容提供商】:支持在多个应用中存储和读取数据,相当于数据库。
### 2、四个组件的生命周期?
> Activity生命周期图及?Fragment生命周期图? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
>
> ![这里写图片描述](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625491826842397.jpg)
>
> ![这里写图片描述](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625491826474758.jpg)
>
> Service的生命周期:首先Service有两种启动方式,而在这两种启动方式下,它的生命周期不同。
>
> ![image](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625491827133383.jpg)
>
> 通过startService()方法启动的服务
>
> ??????初始化结束后系统会调用 void onStart(Intent intent)?方法,用于处理传递给startService()的Intent对象。如音乐服务会打开Intent 来探明将要播放哪首音乐,并开始播放。注意:多次调用startService()方法会多次触发onStart()方法。
>
> 通过bindService ()方法启动的服务
>
> ??????初始化结束后系统会调用 IBinder onBind(Intent intent)?方法,用来绑定传递给bindService 的Intent 的对象。注意:多次调用bindService()时,如果该服务已启动则不会再触发此方法。
### 3、Activity的四种启动模式对比?
> * Standard:标准的启动模式,如果需要启动一个activity就会创建该activity的实例。也是activity的默认启动模式。
> * SingeTop:如果启动的activity已经位于栈顶,那么就不会重新创建一个新的activity实例。而是复用位于栈顶的activity实例对象。如果不位于栈顶仍旧会重新创建activity的实例对象。
> * SingleTask:设置了singleTask启动模式的activity在启动时,如果位于activity栈中,就会复用该activity,这样的话,在该实例之上的所有activity都依次进行出栈操作,即执行对应的onDestroy()方法,直到当前要启动的activity位于栈顶。一般应用在网页的图集,一键退出当前的应用程序。
> * singleInstance:如果使用singleInstance启动模式的activity在启动的时候会复用已经存在的activity实例。不管这个activity的实例是位于哪一个应用当中,都会共享已经启动的activity的实例对象。使用了singlestance的启动模式的activity会单独的开启一个共享栈,这个栈中只存在当前的activity实例对象。
### 4、Activity在有Dialog时按Home键的生命周期?
> 当我们的Activity上弹出Dialog对话框时,程序的生命周期依然是onCreate() ---> onStart() ---> onResume(),在弹出Dialog的时候并没有onPause()和onStop()方法。而在此时我们按下Home键,才会继续执行onPause()和onStop()方法。这说明对话框并没有使Activity进入后台,而是在点击了Home键后Activity才进入后台工作。
>
> 原因就是,其实Dialog是Activity的一个组件,此时Activity并不是不可见,而是被Dialog组件覆盖了其他的组件,此时我们无法对其他组件进行操作而已。
### 5、两个Activity 之间跳转时必然会执行的是哪几个方法??
> 首先定义两个Activity,分别为A和B。
>
> 当我们在A中激活B时,A调用onPause()方法,此时B出现在屏幕时,B调用onCreate()、onStart()、onResume()。
>
> 这个时候B【B不是一个透明的窗体或对话框的形式】已经覆盖了A的窗体,A会调用onStop()方法。
###
### 尾声
以薪资待遇为基础,以发展为最终目标,要在高薪资的地方,谋求最好的发展!
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。有**[Android架构视频+BATJ面试专题PDF+核心笔记等资料](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%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)**。希望能够帮助到大家提升技术。如果大家想要获取的话,可以**私信我【666】免费获取哦**
![](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625491827769094.jpg)
标签:offer,Activity,飞猪,启动,https,activity,Android,五面,### 来源: https://blog.51cto.com/u_15215973/2984758