转到主屏幕时,Android onStop 调用 vs onPause

标签 android android-lifecycle android-ondestroy

我继承了一个启动 Activity A 的项目,Activity A 又会启动 Activity B。如果我按下 Android Home 按钮,然后再次单击应用程序图标,我会看到 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 的任何高级想法?

list 声明:

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,该应用程序将按预期工作。现在我必须回过头来找出遗留代码使用 Single Task 的原因!

关于转到主屏幕时,Android onStop 调用 vs onPause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168170/

相关文章:

android - 防止 Activity 被破坏

java - 如果 onDestroy 之后有一个 Instruction,这个 Instruction 会被执行吗?

java - 如何根据 firebase 中的 id 更新另一个用户余额?

java - Android - 全局知道应用程序何时进入后台/用户退出

java - AudioTrack 未播放完整缓冲区

android - 从 Fragment 调用 getActivity 会导致 App 崩溃

java - 重新打开时出现 Glide 问题 + 无法从已销毁的 Activity 中加载

android - 当服务被 Android 操作系统破坏时删除通知

java - android geocoder api 10 服务不可用

android - 是否可以在抽屉布局中使用 ListView 以外的东西作为滑动抽屉