网站上关于activity和fragment的生命周期非常多,这里就不做过多的介绍。附上一张个人认为非常清晰的生命周期的图片(网上有很多类似的,个人喜好这张)
关于生命周期,在很多面试中,也是众多面试官喜欢问的问题。
想要将一个app做好,activity和fragment的生命周期必须非常清楚。
下面简单介绍下生命周期中常见的部分:
关于activity:
一般onCreate()、onResume()、onDestroy()三个方法用的最多。
onCreate():大部分的控件代码,如findViewById()方法(推荐ButterKnife),一些需要在显示在加载的代码。
onResume():顾名思义,需要恢复的一些代码,比如http的后台刷新之类的。
onDestroy():一般用于广播、缓存图片、static对象或方法等特殊对象的销毁。
关于fragment:
生命周期跟activity很像,不做过多介绍,
额外说下setUserVisibleHint这个方法,如果用到ViewPager,则最好与这个方法结合使用,减少不必要的开销。这个方法显示的是fragment是否在手机屏幕上可见。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser){
Log.i(TAG, "setUserVisibleHint: 看到了");
}else{
Log.i(TAG, "setUserVisibleHint: 看不到")
}
}
暂时写那么多,明天继续