Android基础相关

Android生命周期和启动相关

2020-12-31  本文已影响0人  来lol里

1.Activity A 启动 Activity B的生命周期过程

需要注意的就是无论从A到B,还是从B到A,这时候前一个Activity一定是从onPause开始到onStop结束,这之间完成的下一个Activity的启动(或者恢复),这就是为什么要在onPause里做一些保存操作。

2.部分生命周期的区别差异

1.onCreate和onStart之间有什么区别?

(1)可见与不可见的区别。前者不可见,后者可见。(2)执行次数的区别。onCreate方法只在Activity创建时执行一次,而onStart方法在Activity的切换以及按Home键返回桌面再切回应用的过程中被多次调用。因此Bundle数据的恢复在onStart中进行比onCreate中执行更合适。(3)onCreate能做的事onStart其实都能做,但是onstart能做的事onCreate却未必适合做。如前文所说的,setContentView和资源初始化在两者都能做,然而想动画的初始化在onStart中做比较好。

2.onStart方法和onResume方法有什么区别?

(1)是否在前台。onStart方法中Activity可见但不在前台,不可交互,而在onResume中在前台。(2)职责不同,onStart方法中主要还是进行初始化工作,而onResume方法,根据官方的建议,可以做开启动画和独占设备的操作。

3.onPause方法和onStop方法有什么区别?

(1)是否可见。onPause时Activity可见,onStop时Activity不可见,但Activity对象还在内存中。(2)在系统内存不足的时候可能不会执行onStop方法,因此程序状态的保存、独占设备和动画的关闭、以及一些数据的保存最好在onPause中进行,但要注意不能太耗时。

4.onStop方法和onDestroy方法有什么区别?

onStop阶段Activity还没有被销毁,对象还在内存中,此时可以通过切换Activity再次回到该Activity,而onDestroy阶段Acivity被销毁

5.onNewIntent的生命周期,只对startActivity有效,对于从home切换回来的恢复不走,从桌面launcher点击进去的不走。

3.四种启动模式的差异

上一篇下一篇

猜你喜欢

热点阅读