安卓面试基础知识总结

2019-04-01 16:14

1 Activity

1.1 Activity的概念

是Android应用层开发的四大组件之一,主要负责和用户交互部分,有自己的生命周期,在其上可以布置按钮,文本框等各种控件,简单来说就是Android的UI部分。

1.2 Activity与View的区别

1) Activity是四大组件中唯一一个用来和用户进行交互的组件。可以说Activity就是android的视图层。 2) 如果再细化,Activity相当于视图层中的控制层,是用来控制和管理View的,真正用来显示和处理事件的实际上是View。

3) 每个Activity内部都有一个Window对象, Window对象包含了一个DecorView(实际上就是FrameLayout),我们通过setContentView给Activity设置显示的View实际上都是加到了DecorView中。

1.3 Activity生命周期

1.3.1 生命周期主干

方法 onCreate() 描述 在Activity第一次被创建的时候被调用。 这里是你做所有初始化设置的地方—创建视图、绑定数据至列表等。 如果曾经有状态记录(参阅后述Saving Activity State。),则调用此方法时会传入一个包含着此activity以前状态的包对象做为参数 用。 数据刷新时候调用!!! 当Activity转向前台时接着调用onResume() 在Activity变为隐藏时接着知行onStop() onResume() 在Activity开始与用户进行交互之前被调用。 此时Activity位于堆栈顶部,并接收用户否 () 可被杀死 否 下一个 onStart() onStart() 在Activity正要变得为用户所见时被调否 onResume() onStop() onPause

输入。 Activity run?? onPasue() Activity开始运行???????? 当系统将要启动另一个 Activity时调用。 此方法主要用来将未保存的变化进行持久化,停止类似动画这样耗费CPU的动作等。 这一切动作应该在短时间内完成,因为下一个Activity必须等到此方法返回后才会继续。 当Activity重新回到前台会执行onResume()【弹出对话框】。 当Activity变为用户不可见时会执行onStop()。 是 onResume() onStop() onStop() 当Activity不再为用户可见时调用此方法。 这可能发生在它被销毁或者另一个Activity(可能是现存的或者是新的)回到运行状态并覆盖了它。 如果Activity再次回到前台跟用户交互则执行onRestart(). 如果关闭Activity则执行onDestroy() 是 onRestart() onDestroy() onDestroy() 在Activity销毁前调用。 这是Activity接收的最后一个调用。 这可能发生在Activity结束(调用了它的finish()方法)或因为系统需要空间所以临时的销毁了此Activity的实例时。 可以用isFinishing()方法来区分这两种情况。

1.3.2 其他中转方法

onRestart() 在Activity停止后,在再次启动之前被调用。 之后执行onStart().

是 已经完蛋了,还调用毛线!!! 否onStart()

1.4 Activity启动模式

1.4.1 四种启动模式 standard 默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。 可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。 singleTop

singleTask 只有一个实例。在同一个应用程序中启动它的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。 如果是在别的应用程序中启动它,则会新建一个task,并在该task中启动这个Activity,singleTask允许别的Activity与其在一个task中共存,也就是说,如果我在这个singleTask的实例中再打开新的Activity,这个新的Activity还是会在singleTask的实例的task中。 只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。 singleInstance 1.4.2 配置样例

1.5 Activity启动方法

1) 在一个Activity中调用startActivity()方法。 直接启动Activity,不带请求码。

2) 在一个Activity中调用startActivityForResult()方法。 带请求码启动Activity。

1.6 请求码与响应码

请求码在一个业务中可能在两个按钮被单击事件中打开同一个(RequestCode) Activity,但我们在onActivityResult事件中如何判断是哪个按钮打开了新的Activity?请求码就是为解决这个问题的,那么我们打开新的Activity时应该使用startActivityForResult(intent, 1);。其中的第二个参数就是请求码。 结果码在一个业务中可能要打开多个不同的Activity,那关闭(ResultCode) Activity时在onActivityResult事件中我们如何知道关闭的是哪一个Activity呢?结果码就是为解决这个问题的,那么我们打开新的Activity时应该使用setResult(2, intent);或在关闭Activity前调用

ActivityObj.setResult(2);。其中的第一个参数就是结果码。 在onActivityResult事件中,通过判断resultCode更可知道是哪个Activity被关闭了。 2 BroadcastReceiver

2.1 概念

BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。

2.2 应用场景

在Android系统中,广播体现在方方面面: eg:

1. 当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动

服务的功能;

2. 当锁屏或者点亮屏幕时就会产生一条广播,接收这条广播就可以实现一

些暂停或者开启一些耗电进程的功能。

3. 当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做

出提示和保存数据等操作; 4. 当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量

低时告知用户及时保存进度;

2.3 注册

2.3.1 静态注册 2.3.1.1 概念

静态注册是在AndroidManifest.xml文件中配置的。 2.3.2 动态注册 2.3.2.1 概念

动态注册需要在代码中动态的指定广播地址并注册。 2.3.2.2 需要注意的事项

RegisterReceiver是android.content.ContextWrapper类中的方法,


安卓面试基础知识总结.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015-2020年中国建筑节能市场研究及投资前景预测报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: