2018正版葡京赌侠诗Activity的生命周期

1.A页面跳反至B页面,点击返回,这个进程中的生命周期

B页面完全覆盖A页面的情事 A跳反B页面的生命周期方法执行顺序:
onPause(A)->onCreate(B)—>onStart(B)—>onResume(B)—>onStop(A)

B页面点击后返回生命周期执行顺序:
onPause(B)–>onRestart(A)–>onStart(A)–>onResume(A)->onStop(B)–>onDestroy(B)

B页面不完全覆盖A页面的请求 A跳反B页面的生命周期方法执行各个
onPause(A)–>onCreate(B)–>onStart(B)–>onResume(B)
B页面点击后返回生命周期执行各个
onPause(B)–>onResume(A)–>->onStop(B)–>onDestroy(B)

 

2.Activity横竖屏切换的生命周期

默认情况:onPause–>onStop–>onDestroy–>onCreate–>onStart–>onResume

挡横竖屏切换导致生命周期重新履行

<activity android:name=”.activity.SystemVideoPlayer”
android:configChanges=”keyboardHidden|screenSize|orientation” />

 

3.onCreate

①其自身的来意是开展Activity的有的初始化工作,比如利用setContentView加载布局,对一部分控件和变量进行初始化等。

②可也来好多丁以洋洋与初始化无关之代码放在这,其实这是勿专业的。此时Activity还当后台,不可见。所以动画不应该以此地初始化,因为看不到…

4.onStart

①此时Activity已经可见了,但是还从来不起于前台,我们还看不到,无法同Activity交互。其实用Activity的初始化工作放在这也未曾呀问题,放在onCreate中凡是由于官方推荐的及我们付出的习惯。

onCreate和onStart之间发生什么区别?

(1)可见与不可见的区别。前者不可见,后者可见。
(2)执行次数之界别。onCreate方法就在Activity创建时实行同样不善,而onStart方法以Activity的切换以及按Home键返回桌面再切回应用的过程被受数调用。因此Bundle数据的还原在onStart中开展比onCreate中履行还合适。
(3)onCreate能举行的事onStart其实都能够举行,但是onstart能召开的事onCreate却不一定适合做。如前文所说之,setContentView和资源初始化在两岸都能够举行,然而想动画的初始化在onStart中召开比较好。

 

5.onPause()

①平常在onPause()回调方法吃做以下工作

艾动画或者是外方运行的操作,那些还见面导致CPU的浪费.
交由在用户距离时急需保存的情节(例如邮件草稿).
获释系统资源,例如broadcast receivers, sensors (比如GPS),
或者是另外任何会影响到电量的资源

②例如,
如果程序下Camera,onPause()会是一个于好之地方失去开那些释放资源的操作。

@Override
public void onPause() {
super.onPause(); // Always call the superclass method first

// Release the Camera because we don't need it when paused
// and other activities might need to use it.
if (mCamera != null) {
mCamera.release()
mCamera = null;
}
}

③无该运用onPause()来施行CPU-intensive
的做事,例如写多少到DB,因为它见面造成切换至下一个activity变得缓。  

 ④当Activity要跨越到另外一个Activity或动正常退出时还见面履行之艺术。此时Activity在前台并可见,我们可展开局部轻量级的蕴藏数据以及去初始化的做事,不可知尽耗时,因为在跳转Activity时只有当一个Activity执行了了onPause方法后别一个Activity才见面启动,而且android中指定要onPause在500ms即0.5秒内没实行了的话语就会见强制关闭Activity。从生命周期图备受窥见好当当下迅速又开,但这种景象其实非常难得,比如用户切到下一个Activity的路上按back键快速得断回到。

 

6.onStop

①stop表示已,此时Activity已经不可见了,但是Activity对象还在内存中,没有于销毁。这个路的关键工作为是做一些资源的回收工作。

②onPause方法和onStop方法有啊分别?

(1)是否可见。onPause时Activity可见,onStop时Activity不可见,但Activity对象还以内存中。
(2)在系统内存不足的时段恐怕无会见履行onStop方法,因此次状态的保存、独占设备与卡通的关闭、以及部分数的保存最好好当onPause中展开,但只要顾勿可知最好耗时。

 

7.onDestroy

①destroy意味毁灭,这个阶段Activity被销毁,不可见,我们得以将还并未释放的资源自由,以及进行部分回收工作。

②OnStop方法与onDestroy方法发生什么区别?

onStop阶段Activity还未曾吃灭绝,对象还在内存中,此时好透过切换Activity再次归来该Activity,而onDestroy阶段Acivity被灭绝

 

8.onRestart

①restart意味着还开,Activity在这儿可见,当用户以Home键切换至桌面后以断回到要从晚一个Activity切回前一个Activity就见面沾这个主意。这里一般不开呀操作。

 

9.胡切换Activity时每艺术的施行顺序是(A)onPause→(B)onCreate→(B)onStart→(B)onResume→(A)onStop而不是(A)onPause→(A)onStop→(B)onCreate→(B)onStart→(B)onResume

(1)一个Activity或多或少会占有系统资源,而当官的建议吃,onPause方法将会晤放出掉很多系统资源,为切换Activity提供流畅性的涵养,而无需再次等多简单只级次,这样做切换更快。
(2)按照生命周期图的表示,如果用户以切换Activity的经过遭到另行切回原Activity,是当onPause方法后直接调用onResume方法的,这样比onPause→onStop→onRestart→onStart→onResume要赶早得差不多。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注