美文网首页
2.1基础知识-Activity

2.1基础知识-Activity

作者: 205蚁 | 来源:发表于2018-11-07 17:49 被阅读0次

    Activity详解

        1.activity生命周期

        2.android任务栈

        3.activity启动模式

        4.scheme跳转协议

    一.activity生命周期

    什么是Activity,日常应用中,android是用户交互的接口,提供了界面,让用户进行点击,各种滑动操作。

        1.Activity的4种状态

        2.activity生命周期分析

        3.android进程优先级

    1.Activity的4种状态

        1.running(处于活动状态,点击屏幕有响应,栈顶状态,可以点击)

        2.paused(失去焦点,或者被一个非全屏的,或者透明的Activity放在栈顶,Activity只是失去了与用户的交互能力,并没有被销毁,所有信息和成员变量都存在)

        3.stopped(被完全覆盖,内存不紧张情况下所有信息都存在)

        4.killed状态

    2.activity生命周期分析

        1.Activity启动->onCreate()->onStart()->onResume()

            创建Activity时重写onCreate:setContentView设置布局资源,图片预加载

            onStart:Activity已经处于用户可见的状态,用户无法触摸,还不能给用于进行交互(看见无法触摸)

            onResume:被调用时表明Activity可见了,用户可以触摸、滑动点击等等

        2.点击Home键返回主界面(Activity不可见)->onPause()->onStop()

            onPause:该方法被回调时,表明Activity处于停止状态(可见不可触摸,当前Activity被退至后台)

            onStop:Activity被完全停止,或者完全被覆盖,完全不可见,处于后台运行(手机内存吃紧时可能被回收掉)

        3.当我们再次回到原Activity时->onReStart()->onStart()->onResume()

            onRestart:表示Activity正在重新启动,正在由不可见状态变成可见状态

            onStart:可见

            onResume:可操作,触摸

        4.退出当前Activity时->onPause->onStop->onDestroy

            onDestroy:表明当前Activity正在被销毁,做一个回收工作,资源释放

    3.android进程优先级

        前台、可见、服务、后台、空

        前台进程;1.处于与用户交互的Activity,2.前台Activity绑定的Service

        可见进程:1.Activity属于可见但不可点击

        服务进程:1.开启了一个服务

        后台进程:1.Activity按了home键,后台进程不会立马被kill掉

        空进程:  1.进程不属于前四种,没有活跃的组件,为了缓存而存在的组件

    二.android任务栈

    栈:后进先出

    三.启动模式:

        1.standard(每次重新创建一个新的Activity实例,添加到任务栈中) 都会走相应的生命周期方法(消耗资源,消耗内存)

        2.singleTop(栈顶复用模式):判断任务栈中栈顶是否有将要创建的Activity,走onNewIntent方法

        3.singleTask(栈内复用模式,单例模式):整个任务栈中是否有对应的Activity,

        onNewIntent会走方法,会将该Activity栈以上的Activity全部移除

        4.singleInstance模式:单例,整个应用只有一个

    四.scheme跳转协议

        1.android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;

        2.通过scheme协议,

            1.服务器可以定制化告诉App跳转哪个页面(也可跳转到其他app的页面)

            2.可以通过通知栏消息定制化跳转页面

            3.可以通过H5页面跳转页面等(向H5注册一个UrlScheme,用于在浏览器中启动)

    相关文章

      网友评论

          本文标题:2.1基础知识-Activity

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