Android 转到主屏幕时调用 onStop vs onPause
Android onStop called vs onPause when going to Home Screen
我继承了一个启动 activity A 的项目,该项目又启动了 activity B。如果我按下 Android 主页按钮,然后再次单击应用程序图标,我得到 activity A vs B.
查看生命周期,我看到了这一点。
Click Icon ->Activity A Launch->onCreate->onStart->onResume
Click on context menu that starts Activity B->onCreate->onStart->onResume
Click on Android Home Button Activity B->onPause
Click on App Icon on the Android Home Screen (to resume)
Activity B's onDestory is called followed by Activity A ->onCreate->onStart->onResume.
关于查找什么会导致 onDestroy 与 onResume 的任何高级想法?
清单声明:
Activity A
<activity
tools:replace="android:theme,android:label"
android:name="WebViewActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name_pro"
android:launchMode="singleTask"
android:theme="@style/MyTheme.AppCompat.NoAB">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter"/>
</activity>
============================
Activity B
<activity
android:name="OwaViewerActivity"
android:label="@string/owa"
tools:replace="android:theme"
android:launchMode="singleTop"
android:configChanges="orientation|screenSize|keyboardHidden"
android:theme="@style/MyTheme.AppCompat.NoAB"
android:parentActivityName="WebViewActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="WebViewActivity"/>
<intent-filter>
<action android:name="android.intent.action.SEARCH"/>
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
因此,如有疑问,请创建一个简单的应用程序。事实证明,主页按钮确实会生成一个 onStop,然后如果点击该图标重新启动,则应该调用 onStart 和 on Resume。结果是 SingleTask 是导致 onDestory 发生的原因。如果我删除 SingleTask,该应用程序将按预期工作。现在我必须回过头来找出遗留代码使用单一任务的原因!
我继承了一个启动 activity A 的项目,该项目又启动了 activity B。如果我按下 Android 主页按钮,然后再次单击应用程序图标,我得到 activity A vs B.
查看生命周期,我看到了这一点。
Click Icon ->Activity A Launch->onCreate->onStart->onResume
Click on context menu that starts Activity B->onCreate->onStart->onResume
Click on Android Home Button Activity B->onPause
Click on App Icon on the Android Home Screen (to resume)
Activity B's onDestory is called followed by Activity A ->onCreate->onStart->onResume.
关于查找什么会导致 onDestroy 与 onResume 的任何高级想法?
清单声明:
Activity A
<activity
tools:replace="android:theme,android:label"
android:name="WebViewActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name_pro"
android:launchMode="singleTask"
android:theme="@style/MyTheme.AppCompat.NoAB">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter"/>
</activity>
============================
Activity B
<activity
android:name="OwaViewerActivity"
android:label="@string/owa"
tools:replace="android:theme"
android:launchMode="singleTop"
android:configChanges="orientation|screenSize|keyboardHidden"
android:theme="@style/MyTheme.AppCompat.NoAB"
android:parentActivityName="WebViewActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="WebViewActivity"/>
<intent-filter>
<action android:name="android.intent.action.SEARCH"/>
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
因此,如有疑问,请创建一个简单的应用程序。事实证明,主页按钮确实会生成一个 onStop,然后如果点击该图标重新启动,则应该调用 onStart 和 on Resume。结果是 SingleTask 是导致 onDestory 发生的原因。如果我删除 SingleTask,该应用程序将按预期工作。现在我必须回过头来找出遗留代码使用单一任务的原因!