美文网首页
Activity面试详解

Activity面试详解

作者: 程序猿BOSS | 来源:发表于2017-10-19 14:45 被阅读5次

1、什么是Activity?

Android是与用户交互的接口,它提供了一个界面,供用户去点击、滑动等操作。

2、Activity的四种状态

2.1Running状态:一个新的Activity启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。

2.2Paused状态:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,它仍然可见,但它已经失去了焦点,故不可与用户交互。如果内存紧张的时候还有可能被系统回收。

2.3Stopped状态:当Activity不可见时,Activity处于Stopped状态。当Activity处于此状态时,一定要保存当前数据和当前的UI状态,否则一旦Activity退出或关闭时,当前的数据和UI状态就丢失了。

2.4Killed状态:Activity被杀掉以后或者被启动以前,处于Killed状态。这是Activity已从Activity堆栈中移除,需要重新启动才可以显示和使用。

3、Activity的生命周期

Activity启动的时候:onCreate()->onStart()->onResume()

点击Home回到主界面:(Activity不可见)->onPause()->onStop()

再次回到Activity的时候:onRestart()->onStart()->onResume()

退出当前Activity时:onPause()->onStop()->onDestroy()

4、Android的五种进程的优先级

4.1前台:处于前台和用户交互的Activity或者在前台Activity绑定的Service这两种情况

4.2可见:Activity处于前台但是并不能和用户交互的可见状态,就是可见进程。

4.3服务:在后台开启的Service服务

4.4后台:前台进程处于不可见状态下(也就是按了Home键),此时就是后台进程。但是后台进程不会被立马killed掉,会根据内存情况进行相应的回收。

4.5空:优先级最低,不属于前面4种就是空进程,它表示不是活跃的组件,处于缓存的目的而保留。Android系统可以随时杀掉它。

5、Android的任务栈

Android的任务栈是一个Task是一个Activity的集合,它可以帮助我们管理Activity

6、Activity启动模式

6.1standard:标准模式每启动一个Activity的都会创建一个新的Activity并添加到任务栈中,都会走相应的生命周期方法。

6.2singleTop:栈顶复用模式,创建新的Activity如果此时栈顶有就复用,没有就创建新的Activity

6.3singletask:栈内复用模式,创建新的Activity如果此时栈内有此Activity,就把此Activity置于栈顶。并且把此Activity之上的Activity从任务栈中移除、销毁。会回调一个onNewIntent();

6.4singleinstance:在整个系统中有且只有一个实例,并且独享任务栈。

7、Schemet跳转协议

Android中的scheme是一种页面内跳转协议,是一种非常好的实现机制。通过定义自己的scheme协议,可以非常方便跳转app内的各个页面。通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。

相关文章

网友评论

      本文标题:Activity面试详解

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