美文网首页
Android面试复习-Activity

Android面试复习-Activity

作者: Margolu | 来源:发表于2019-07-28 21:55 被阅读0次

1.Android中4大组件

Activity:用户可操作的可视化界面,为用户提供一个完成操作指令的窗口。

BroadcastRecevier:广播接收者,运用在应用程序间传输信息,可以使广播接收器来应用对一个外部事件做出响应

ContentProvider:内容提供者,使一个应用程序的指定数据集提供给其他应用程序

Service:服务,运行在手机后台,适合执行不需要和用户交互且需长期运行的任务

2.Activity之间的通信方式

通过Intent方式传递参数跳转

广播方式

借助类的静态变量或全局变量

借助SharedPreference或是外部存储,如数据库或本地文件

3.Activity四种状态

running

paused

stopped

killed

4.Activity生命周期

onCreate(Bundle savedInstanceState):创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问

onStart():activity在屏幕上对用户可见时调用

onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用)

onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态

onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用

onDestroy():activity被完全从系统内存中移除时调用

onRestart():重新启动activity时调用。该活动仍在栈中,而不是启动新的活动

5.Activity启动过程

(1)在安装应用时,系统会启动PackaManagerService管理服务,这个管理服务会对AndroidManifest进行解析,从而得到应用程序中的相关信息,比如service,activity,Broadcast等等,然后获得相关组件的信息。

(2)当用户点击应用图标时,就会调用startActivitySately(),而这个方法内部则是调用startActivity(),startActivity()最终还是会调用startActivityForResult().由于startActivityForResult()是有返回结果的,系统直接返回-1,表示不需要返回结果。

(3)startActivityForResult()通过instrumentation类中的execStartActivity()来启动activity,instrumentation这个类主要作用是监控程序和系统之间的交互。在这个execStartActivity()中会获取ActivityManagerService的代理对象,通过这个代理对象进行启动activity

(4)在ActivityManagerService的代理对象中,通过Binder通信,调用到ApplicationThread.scheduleLaunchActivity()进行启动activity,在这个方法中创建一个ActivityClientRecord对象,用来记录启动Activity组件的信息,然后通过handler将ActivityClientRecord发送出去

(5)在handler收到消息后,调用ActivityThread.handleLaunchActivity()启动Activity

6.Activity切换横屏时生命周期

onSaveInstanceState()

onPause()

onStop()

onDestroy()

onCreate()

onStart()

onRestoreInstanceState()

onResume()

7.Activity启动模式

standard:默认的启动模式,每次启动会在任务栈中新建一个启动的activity的实例

singletop:如果要启动的Activity实例已经位于栈顶,则不会重新创建该Activity的实例,否则会产生一个新的运行实例

singletask:如果栈中有该Activity实例,则直接启动,中间的Activity实例将会被关闭,关闭的顺序与启动的顺序相同

singleinstance:该启动模式会在启动一个Activity时,启动一个新的任务栈,将该Activity实例放置在这个任务栈,并且该任务栈中不会再保存其他的Activity实例

相关文章

网友评论

      本文标题:Android面试复习-Activity

      本文链接:https://www.haomeiwen.com/subject/sgcprctx.html