Android面试基础知识总结Word下载.docx

上传人:b****2 文档编号:14459948 上传时间:2022-10-23 格式:DOCX 页数:35 大小:158.45KB
下载 相关 举报
Android面试基础知识总结Word下载.docx_第1页
第1页 / 共35页
Android面试基础知识总结Word下载.docx_第2页
第2页 / 共35页
Android面试基础知识总结Word下载.docx_第3页
第3页 / 共35页
Android面试基础知识总结Word下载.docx_第4页
第4页 / 共35页
Android面试基础知识总结Word下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

Android面试基础知识总结Word下载.docx

《Android面试基础知识总结Word下载.docx》由会员分享,可在线阅读,更多相关《Android面试基础知识总结Word下载.docx(35页珍藏版)》请在冰豆网上搜索。

Android面试基础知识总结Word下载.docx

在Activity第一次被创建的时候被调用。

这里是你做所有初始化设置的地方—创建视图、绑定数据至列表等。

如果曾经有状态记录(参阅后述Saving 

Activity 

State。

),则调用此方法时会传入一个包含着此activity以前状态的包对象做为参数

onStart()

在Activity正要变得为用户所见时被调用。

数据刷新时候调用!

当Activity转向前台时接着调用onResume()

在Activity变为隐藏时接着知行onStop()

onResume()

onStop()

在Activity开始与用户进行交互之前被调用。

此时Activity位于堆栈顶部,并接收用户输入。

onPause()

Activityrun……

Activity开始运行……………………

onPasue()

当系统将要启动另一个Activity时调用。

此方法主要用来将未保存的变化进行持久化,停止类似动画这样耗费CPU的动作等。

这一切动作应该在短时间内完成,因为下一个Activity必须等到此方法返回后才会继续。

当Activity重新回到前台会执行onResume()

【弹出对话框】。

当Activity变为用户不可见时会执行onStop()。

当Activity不再为用户可见时调用此方法。

这可能发生在它被销毁或者另一个Activity(可能是现存的或者是新的)回到运行状态并覆盖了它。

如果Activity再次回到前台跟用户交互则执行onRestart().

如果关闭Activity则执行onDestroy()

onRestart()

onDestroy()

在Activity销毁前调用。

这是Activity接收的最后一个调用。

这可能发生在Activity结束(调用了它的finish()方法)或因为系统需要空间所以临时的销毁了此Activity的实例时。

可以用isFinishing()方法来区分这两种情况。

已经完蛋了,还调用毛线!

1.3.2其他中转方法

在Activity停止后,在再次启动之前被调用。

之后执行onStart().

1.4Activity启动模式

1.4.1四种启动模式

standard

默认模式,可以不用写配置。

在这个模式下,都会默认创建一个新的实例。

因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。

singleTop

可以有多个实例,但是不允许多个相同Activity叠加。

即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。

singleTask

只有一个实例。

在同一个应用程序中启动它的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activitydestory掉并调用它的onNewIntent方法。

如果是在别的应用程序中启动它,则会新建一个task,并在该task中启动这个Activity,singleTask允许别的Activity与其在一个task中共存,也就是说,如果我在这个singleTask的实例中再打开新的Activity,这个新的Activity还是会在singleTask的实例的task中。

singleInstance

只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。

1.4.2配置样例

<

activity 

android:

name="

com.example.mobilesafe.WatchDogActivity"

 

launchMode="

singleInstance"

/>

1.5Activity启动方法

1)在一个Activity中调用startActivity()方法。

直接启动Activity,不带请求码。

2)在一个Activity中调用startActivityForResult()方法。

带请求码启动Activity。

1.6请求码与响应码

请求码(RequestCode)

在一个业务中可能在两个按钮被单击事件中打开同一个Activity,但我们在onActivityResult事件中如何判断是哪个按钮打开了新的Activity?

请求码就是为解决这个问题的,那么我们打开新的Activity时应该使用startActivityForResult(intent,1);

其中的第二个参数就是请求码。

结果码(ResultCode)

在一个业务中可能要打开多个不同的Activity,那关闭Activity时在onActivityResult事件中我们如何知道关闭的是哪一个Activity呢?

结果码就是为解决这个问题的,那么我们打开新的Activity时应该使用setResult(2,intent);

或在关闭Activity前调用ActivityObj.setResult

(2);

其中的第一个参数就是结果码。

在onActivityResult事件中,通过判断resultCode更可知道是哪个Activity被关闭了。

2BroadcastReceiver

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类中的方法,Activity和Service都继承了ContextWrapper,所以可以直接调用。

在实际应用中,我们在Activity或Service中注册了一个BroadcastReceiver,当这个Activity或Service被销毁时如果没有解除注册,系统会报一个异常,提示我们是否忘记解除注册了。

所以,需要在特定的地方执行解除注册操作:

生命周期的onDestroy()。

有部分广播接受者,涉及到用户的敏感内容,需要在权限文件中声明。

如开机完成的广播,用户电量变化的广播,用户网络状态发生改变的广播

2.3.3生命周期

1.广播接收者的生命周期是非常短暂的,在接收到广播的时候创建,onReceive()方法结束之后销毁

2.广播接收者中不要做一些耗时的工作,否则会弹出ApplicationNoResponse错误对话框

3.最好也不要在广播接收者中创建子线程做耗时的工作,因为广播接收者被销毁后进程就成为了空进程,很容易被系统杀掉

4.耗时的较长的工作最好放在服务中完成

3Service

3.1概念

服务是看不到界面的,,就是一个没有界面的Activity,并且长期在后台运行的一个组件.。

3.2为什么用服务?

进程优先级,回收时是从5~1,从低到高

Foregroundprocess前台进程

Visibleprocess可视进程

Serviceprocess服务进程

Backgroundprocess后台进程

Emptyprocess空进程

回收的优先级:

先回收空进程,一个一个回收的,当内存够用时,不再回收空进程.如果空进程回收完毕后,内存还是不够用时,继续向上一个一个的回收后台进程.依次类推.

当系统内存不够用时,需要回收服务进程时,当系统内存又够用时,会重新启动服务.当用户去手动的把服务关闭时,服务不会再重启了

3.3作用

由于ANR对Activity和BroadcastReceiver响应时间的限制(Activity对事件响应不超过5秒,BroadcastReceiver执行不超过10秒),使得在其中都不适合执行较耗时操作,这样像网络、数据库、复杂计算这类耗时操作的执行就需要一个组件来承担。

Service作为Android四大组件之一,其功能之一就是耗时操作的执行,主要功能如下:

a.执行需要长时间运行的操作,这个操作不与用户进行交互,如网络下载、大文件I/O、复杂计算、监听手机状态。

b.应用内或应用间数据通信,Android每个应用程序都在自己的dalvik虚拟机中运行,一个应用是不允许访问其他应用的内存信息的,为此Android引入了ContentProvider在不同应用间共享数据,BroadcastReceiver广播信息给不同应用程序,但ContentProvider更多用于数据的共享,BroadcastReceiver广播的信息会被所有应用接收较耗费系统资源,对于两个应用间动态的进行交互还需要通过Service来完成。

3.4启动方式

3.4.1直接启动

Activity开启完服务后就不管服务了.Activity和服务没有关系.startService开启的服务, 

只有stopService可以关闭

3.4.2绑定启动

绑定服务,生命周期方法会执行:

onUnbind->

onDestory服务销毁了.

在activity中调用service中的方法.

步骤:

调用bindService方法绑定服务

1.在Activity中定义一个连接桥的内部类,会在bindService方法传递给service.

2.在service服务中onBind方法中返回一个IBinder接口对象.

3.在service类中定义一个IBinder的内部实现类,在onBind方法返回.

4.当onBinder方法返回完对象后,activity中连接桥里的onServic

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1