Android 活动与碎片生命周期全解析
1. Android 活动的脆弱性与生命周期基础
在 Android 系统中,活动(Activity)的生命周期充满变数。活动的进程可能会被系统随意终止,活动对象也可能被销毁,而且当进程被终止时,甚至无法保证所有重写的生命周期方法都会被调用。
要理解 Android 中的生命周期,关键在于了解活动实例被销毁和进程被终止时会发生什么:
-活动销毁:当 Android 系统想要丢弃某个 Activity 类的实例时,会调用onDestroy方法。这里的“丢弃”意味着系统将对该 Activity 实例的引用置为null。除非代码中持有该 Activity 的引用,否则它最终会被垃圾回收。需要注意的是,调用onDestroy方法后,这个 Activity 子类的实例不会再被使用,但这并不意味着应用程序或其所在进程会停止运行。例如,在配置更改(如屏幕方向改变)后,之前使用的 Activity 对象会被销毁,然后会创建一个新的实例,以便为新配置重新加载资源。
-进程终止:当 Android 系统内存不足时,会寻找要终止的进程。通常,Android 应用程序在单独的进程中运行,一个进程中的垃圾回收无法触及系统中的所有内存。因此,在内存不足的情况下,系统会优先终止那些没有正在使用的组件的进程,极端情况下,也会终止有组件正在使用的进程。对于简单应用程序,在调用onPause方法后,其进程就可能成为被终止的候选者。也就是说,如果系统需要通过终