Android开发

2021网易Android高级面试题及答案,值得推荐!

本文主要是介绍2021网易Android高级面试题及答案,值得推荐!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
### 1、四大组件是什么? > * Activity【活动】:用于表现功能。 > * Service【服务】:后台运行服务,不提供界面呈现。 > * BroadcastReceiver【广播接收器】:用来接收广播。 > * Content Provider【内容提供商】:支持在多个应用中存储和读取数据,相当于数据库。 ### 2、四个组件的生命周期? > Activity生命周期图及?Fragment生命周期图? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? > > ![这里写图片描述](http://www.www.zyiz.net/i/li/?n=2&i=images/20210707/1625671484100131.jpg) > > ![这里写图片描述](http://www.www.zyiz.net/i/li/?n=2&i=images/20210707/1625671485697850.jpg) > > Service的生命周期:首先Service有两种启动方式,而在这两种启动方式下,它的生命周期不同。 > > ![image](http://www.www.zyiz.net/i/li/?n=2&i=images/20210707/1625671485370748.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开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人,若有关Android学习进阶可以与我在Android终极开发交流群一起讨论交流。?**[点击这里前往我的Git领取资料](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)** 的同时,还可以加入一个好的学习交流圈,何乐而不为呢?加入我们和我们一起吧!! * **Android进阶知识体系学习脑图** ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210707/1625671485397958.jpg) * **Android进阶高级工程师学习全套手册** ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210707/1625671485770222.jpg) * **对标Android阿里P7,年薪50w+学习视频** ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210707/1625671485262428.jpg) * **大厂内部Android高频面试题,以及面试经历** ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210707/1625671485883422.jpg)
这篇关于2021网易Android高级面试题及答案,值得推荐!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!