Android之Activity的生命周期
程序员文章站
2024-03-25 18:25:40
...
程序正常启动时:
onCreate()->onStart()->onResume();
onCreate()在活动第一次创建时被调用,主要用于加载布局
onStart()这个方法在活动由不可见变为可见的时候调用。
onResume这个方法在活动准备好和用户进行交互的时候调用。
此时的活动一定位于返回栈的栈顶,并且处于运行状态
三种调用的场景:
一个Activity启动另一个Activity: onPause()->onStop(),
再返回:onRestart()->onStart()->onResume()
程序按back 退出: onPause()->onStop()->onDestory(),
再进入:onCreate()->onStart()->onResume();
程序按home 退出: onPause()->onStop(),
再进入:onRestart()->onStart()->onResume();
以下情况下都只会触发onPause而不会触发onStop:
一个透明的、或者包含Dialog的Activity出现
锁屏
闪退:代码不正确或者内存不足
执行onStop:
按home键返回桌面
启动另一activity把原activity完全遮住
Activity透明:
使用主题来使其透明,只需在Manifest中activity的设置如下:
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen“
虽然activity是透明了,但是其上的view如textview、button等控件还是可见的。如果只有一个activity,那么它下面的activity就会完全暴露出来。根据生命周期分析可知,下面的activity此时的状态在Pause。
MainActivity: onCreate:
MainActivity: onStart:
MainActivity: onResume:
MainActivity: onPause:
NormalActivity: onCreate:
NormalActivity: onStart:
NormalActivity: onResume:
而此时我按Back键,一个奇怪的现象发生了:透明activity pause后,下面的activity resume,然后透明activity stop,最后destroy。
NormalActivity: onPause:
MainActivity: onResume:
NormalActivity: onStop:
NormalActivity: onDestroy:
活动不可见:
返回上一个活动:
上一篇: python抖音APP视频爬取
下一篇: 第一篇博客,python爬取淘宝信息