activity面试题

什么是activity?

答:Activity是Android一个非常重要的用户接口,是可见的,用户和应用程序之间进行交互的接口。在每个Activity中都可以放很多控件,所以也可以把Activity看作控件的容器。

一.activity生命周期

   1.activity的4种状态

        running放在栈顶

        paused失去焦点,成员变量都还在

        stopped当activity被覆盖的时候

        killed 此时的activity已经被销毁,所有变量都不存在
    2.生命周期

activity启动

    1.oncreate()是在activity创建的时候调用,初始化的时候调用
    2.onstart()表明activity正在启动状态,这时的activity可以看见但是不能触摸

    3.onresume()此时的activity可见,并且可以和用户交互

点击home键回到主见面

    1.onpause()此时activity处于停滞状态,可见但不可触摸

    2.onstop()当activity完全不可见,也是不可交互的

当我们再次回到原activity的时候

    1.onrestart()表示activity正在重新启用,

    2.onstart()

    3.onresume()

退出当前activity

    1.onpause()

    2.onstop()

    3.ondestory()activity完全销毁,此时可以做一些关闭的操作

二.android进程优先级

1.前台:例如和用户正在交互的activity或者在前台activity绑定的service

2.可见 :activity处于可见但是不能点击的时候就是可见进程

3.服务:在后台开启的服务进程就是服务进程

4.后台:比如前台activity按了home键,此时的activity看不见也不可交互,但是未被系统所回收,及为后台进程

5.空:除上述四种进程外就是空进程,可以随时被系统所回收

三.android启动模式

1.standard:每次启动都会重新创建activity实例,并放在栈中,并走相应的生命周期,消耗内存资源,

2.singletop:栈顶复用,当创建activity的时候会先查看当前栈顶是否已经存在当前activity实例,如果存在就复用,如果不存在即重新创建

3.singletask:栈内复用,相当于栈内的单例模式,当创建activity先检查栈内是否存在此activity,如果存在,他会把当前activity上面的其他activity移除,销毁,走onnewinstant方法

4.singleinstance:独享任务栈模式

四.scheme跳转协议

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

简单来说,这个scheme协议其实就是给个uri地址,把参数以及要打开的activity的名字封装在里面,在客户端中解析这个uri地址,获取到activity的名字及参数,通过这两个顺利打开指定的activity.

你可能感兴趣的:(activity面试题)