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

by admin on 2019年3月29日

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()回调方法中做以下工作

悬停动画或许是另外正在运转的操作,那1个都会招致CPU的浪费.
付给在用户距离时代待保存的内容(例如邮件草稿).
放飞系统财富,例如broadcast receivers, sensors (比如GPS),
大概是其余任何会影响到电量的能源

②例如,
假设程序选用Camera,onPause()会是1个相比好的地方去做那几个释放能源的操作。

@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要跳到另3个Activity或使用正常退出时都会实施这些格局。此时Activity在前台并可见,大家能够展开一些轻量级的积存数据和去起始化的办事,不能够太耗费时间,因为在跳转Activity时唯有当二个Activity执行完了onPause方法后另三个Activity才会运转,而且android中钦点固然onPause在500ms即0.5秒内没有执行完成的话就会强制关闭Activity。从生命周期图中发现能够在那非常的慢重启,但那种情景实际上很稀罕,比如用户切到下1个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键切换成桌面后又切回到大概从后1个Activity切回前1个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要快得多。

 

发表评论

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

网站地图xml地图