欢迎来到天天文库
浏览记录
ID:39509113
大小:4.45 MB
页数:16页
时间:2019-07-04
《android面试系列之一》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1, 谈谈你对Activity的理解?对于这种“你对什么什么怎么理解”的面试题,最好的回到方式就是用你自己的理解说出来,通俗中夹杂些专业术语,偶尔再蹦出几个英文。当然如果你很牛X,你可以往深了说,只要别漫无目的的说就行。围绕一条主线。这其中如果你对某一方面比较精通,你就应该往你精通的方向引。面试官可能就会顺着你的思路走了。不过现在有很多面试问Android方面的知识不多,问java方面的比较多。通俗的讲,Activity就是一个应用程序的门面,也可以理解成就是WEB程序中一个页面,当然与web程序中的页面不同的是,web中的一个页面可能只是一个纯粹
2、的展示页面不与用户进行任何交互,而几乎所有的Activity都会与用户交互。当然两者在架构上也有本质区别,Activity与用户的交互通过触发UI的不同事件完成的。而Web程序是通过请求,响应来完成交互的。还有在android中颠覆了很多常规想法,比如在一个Activity中可以打开另一个不在同一应用的Activity。这在其他程序是不可想象的。当然这种设计的出发点也是为了节省系统资源。从View层的角度来看,Activity承载了与用户交互的不同控件。从控制层看,也就是内部逻辑,Activity需要保持各个界面的状态,背后会做很多持久化的操作。包
3、括妥善管理生命周期的各个阶段。(把生命周期引出来了,没准就会问你这方面的)。下面是文档式的回答:(最好的回答方式两者结合)首先Activity是android四大组件之一。它是单独的,作为用户与程序交互的一个载体。几乎所有的Activity都与用户交互。Activity创建了一个窗口,你可以通过setContentView这个方法将需要的UI放置在窗口。任何一个应用程序都可以调用单独的一个Activity。其次,Activity的继承关系 Activity→ContextThemeWrapper→ContextWrapper→Context最后大部
4、分的Activity的子类都需要实现以下两个接口:onCreate(Bundle savedInstanceState)接口是初始化activity的地方. 在这儿通常可以调用setContentView(int)设置在资源文件中定义的UI, 使用findViewById(int) 可以获得UI中定义的窗口.onPause()接口是使用者准备离开activity的地方,在这儿,任何的修改都应该被提交(通常用于ContentProvider保存数据).所有Activity必须在清单文件里注册一下才能使用。 2, Activity的生命周期?在系统中
5、的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。 Activity有四种本质区别的状态:1)在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(activeorrunning)2)如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity依然保持活
6、力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。3)如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。4)如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity
7、再次显示给用户时,它必须重新开始和重置前面的状态。 Activity提供了7个生命周期方法:onCreate(),onStart(),onResume(),onPause(),onStop(),onDestory(),onRestart()。在这七个生命周期方法中有三个关键的循环。其实官方给的那张图画得很明白,但估计很少人能有耐心去揣摩。那就换种方式展现。看图吧:1)以下该图呈现了一个Activity完整的生命周期,从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有的“全局”状态,在
8、onDestory()释放所有的资源。首先我们运行程序,这是打开MainActivity依次调用onCreate->onS
此文档下载收益归作者所有