![](/img/trans.png)
[英]Why onStop() is called after onCreate() when starting an Activity within onActivityResult()
[英]Activity's onStop() not called when starting another full screen Activity
我曾經認為,當活動A被另一個全屏活動B替換時,將調用A的onStop()
回調。
這也反映在文檔中:
活動的可見生命周期發生在對onStart()的調用和對onStop()的調用之間。 在此期間,用戶可以在屏幕上看到活動並與之交互。 例如,當一個新活動開始並且這個活動不再可見時,會調用onStop()。
然而,現在,我正在觀察不同的行為(在Lollipop和Marshmallow上測試)。
我從HomeActivity
啟動AuthenticationActivity
,盡管AuthenticationActivity
是一個全屏活動,但HomeActivity
並未停止。
在清單中聲明這些活動:
<activity
android:name=".screens.home.activities.HomeActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".screens.authentication.activities.AuthenticationActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:windowSoftInputMode="adjustResize"
android:theme="@style/AppTheme.Transparent"/>
當活動切換時,這是我在logcat中觀察到的:
11-28 10:16:31.443 15183-15183/somepackage I/LOG:: LifeCycle : activity (somepackage.screens.home.activities.HomeActivity@3561e8e1) paused
11-28 10:16:31.583 15183-15183/somepackage I/LOG:: LifeCycle : activity (somepackage.screens.authentication.activities.AuthenticationActivity@2bbdb20f) created
11-28 10:16:31.753 15183-15183/somepackage D/Activity: performCreate Call secproduct feature valuefalse
11-28 10:16:31.753 15183-15183/somepackage D/Activity: performCreate Call debug elastic valuetrue
11-28 10:16:31.753 15183-15183/somepackage D/AuthenticationActivity: onStart()
11-28 10:16:31.753 15183-15183/somepackage I/LOG:: LifeCycle : activity (somepackage.screens.authentication.activities.AuthenticationActivity@2bbdb20f) started
11-28 10:16:31.993 15183-15183/somepackage D/AuthenticationActivity: onResume()
11-28 10:16:31.993 15183-15183/somepackage I/LOG:: LifeCycle : activity (somepackage.screens.authentication.activities.AuthenticationActivity@2bbdb20f) resumed
11-28 10:16:32.213 15183-15183/somepackage I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@266569db time:354918367
11-28 10:16:32.613 15183-15183/somepackage I/LOG:: LifeCycle : activity (somepackage.screens.home.activities.HomeActivity@3561e8e1) saveInstanceState
11-28 10:16:32.633 15183-15183/somepackage V/ActivityThread: updateVisibility : ActivityRecord{2bcd65fd token=android.os.BinderProxy@86da390 {somepackage/somepackage.screens.home.activities.HomeActivity}} show : true
這是怎么回事?
“例如,當新活動開始並且不再可見時,會調用onStop()。”
由於您的AuthenticationActivity是透明的,因此HomeActivity仍然可見=> onStop未被調用
嘗試刪除:
android:theme="@style/AppTheme.Transparent"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.