志在指尖
用双手敲打未来

Activity知识介绍

1Activity生命周期
1.1Activity的四种状况
running当时Activity正在运转,获取焦点
paused当时Activity处于暂停状况,可见,没有焦点
stopped当时Activity处于暂停状况,完全不行见,内存里的成员变量和状况信息仍在。
killed当时Activity被销毁后的状况,成员变量和状况信息被一并收回。
1.2Activity的生命周期
Activity发动→onCreate()→onStart()→onResume();
点击home键回来桌面→onPause()→onStop();
再次回到原Activity→onRestart()→onStart()→onResume();
按回来键退出当时Activity→onPause()→onStop()→onDestroy();
2Android使命栈
优先级:前台>可见>服务>后台>空
前台:正在与用户进行交互的Activity地点的进程
可见:Activity可见但没有在前台地点的进程
服务:Activity在后台开启了服务地点的进程
后台:Activity完全处于后台地点的进程
空:没有任何Activity存在的进程Activity知识介绍
3.Activity的发动形式
3.1为什么需求发动形式?
每次发动一个Activity都会把对应的要发动的Activity的实例放入使命栈中,加入这个Activity被频频发动,会发生许多的这个Activity的实例,为了杜绝这种内存糟蹋的行为,Activity的发动形式被发明出来。
3.2Activity的发动形式
体系形式形式:standard
规范形式,也是体系的默认形式,发动一个activity就创立一个activity实例,不论这个实例是否存在,谁发动了这个Activity,那么这个Activity就运转在发动它的那个Activity的使命栈中。
栈顶复用形式:singleTop
在这种形式下,假如新的Activity已经坐落栈顶,那么此Activity不会被从头创立,同时它的onNewIntent办法被回调,通过此办法的参数咱们能够取出当时的恳求信息。需求注意,此Activity的onCreate,onStart办法不会被体系调用。假如新Activity不在栈顶,那么新Activity任然会被从头重建。
栈内复用形式:singleTask
这是一种单实例形式,只需Activity在一个栈中存在,那么多次发动此Activity都不会从头创立实例,体系也会回调onNewIntent办法。
例如:当时栈内状况为ABC,此刻D被以singleTask的形式被发动,当时栈变为ABCD。
假如当时栈内状况为ADBC,此刻D被以singleTask的形式被发动,当时栈变为AD。
单实例形式:singleInstance
这是一种加强的单实例形式,它除了具有singleTask形式的所有特性外,还加强了一点,那就是具有此种形式的Activity只能独自坐落一个使命栈中,比如ActivityA是singleInstance形式,A被发动时体系会为它创立一个新的使命栈,A运转在这个独自的使命栈中,后续的恳求均不会再创立A,除非这个独自的使命栈被体系销毁了。

未经允许不得转载:IT技术网站 » Activity知识介绍
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载