Activity生命周期之onStop 何种情况不被调用。

2018-05-13  本文已影响0人  feifei_fly
image

什么是生命周期

典型的生命周期就是在有用户参与的情况下,Activity经历从创建,运行,停止,销毁等正常的生命周期过程

在开发工程发现 onStop()有时不被回调。

什么时候不被回调呢?

Activity 不被完全覆盖的情况
ActivityA 跳转到Activity B,Activity A 再以下情况不被回调
(1)B 的theme 被设置为 android:theme="@android:style/Theme.Dialog",以对话框的形式显示的时候。被覆盖的A 不会调用onStop()

(2)B 的theme被设置成 Android:theme="@android:style/Theme.Translucent.NoTitleBar" 或者Android:theme="@android:style/Theme.Translucent.NoTitleBar"。
被覆盖的Activity 不会调用onStop

(3)B 的theme 被设置为 android:theme中设置了android:windowIsTranslucent 为true,(透明的,遮不住下面的Activity),被遮住的ActivityA 不会调用onStop()

  <style name="AppTheme" parent="android:Theme.Black.NoTitleBar">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:activityOpenEnterAnimation">@anim/in_from_left</item>
        <item name="android:activityOpenExitAnimation">@anim/out_from_right</item>
        <item name="android:activityCloseEnterAnimation">@anim/in_from_right</item>
        <item name="android:activityCloseExitAnimation">@anim/out_from_left</item>
    </style>

Acitvity A 跳转到Activity B的过程,遵循先创建 后销毁的原则。

ActivityA.onCreate()
ActivityA.onStart()
ActivityA.onResume()
ActivityA.onPause()

ActivityB.onCreate() //--先创建
ActivityB.onStart()
ActivityB.onResume()

ActivityA.onStop() //-- 后销毁

上一篇 下一篇

猜你喜欢

热点阅读