点击应用程序图标会销毁活动

3
我正在开发一款新应用,遇到了一个奇怪的问题。当我将应用程序发送到后台(按下主屏幕按钮),然后使用应用图标重新启动应用时,所有活动都被销毁(在日志中,我会得到除根活动外所有活动的OnDestroy,而根活动则会调用OnResume)。
如果我将其发送到后台并从当前任务中恢复它,则可以恢复应用程序。
我已经在应用程序清单中为所有活动添加了android: launchMode =“singleTask”,但没有任何区别。
每个活动都是正常启动的:startActivity(new Intent(this,nextClass)); 是否有任何方法可以在按下应用图标时恢复应用程序? AndroidManifest.xml
<application
    tools:replace="android:icon"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:screenOrientation="landscape"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:name="com.example.game.classes.App">
    <activity
        android:name=".LaunchScreenActivity"
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:launchMode="singleTask"
        android:configChanges="keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".HomeActivity"
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:launchMode="singleTask"
        android:configChanges="keyboardHidden|orientation|screenSize"/>
    <activity
        android:name=".PlayActivity"
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:launchMode="singleTask"
        android:configChanges="keyboardHidden|orientation|screenSize" />
.
.
.

编辑说明:不是App重新启动而是恢复的重复问题解释

那种情况和我的区别在于,那种情况下主活动在其他活动之上启动(您可以按返回键返回到以前运行的活动)。在我的情况下,其他活动完全被销毁,除了恢复的启动活动。


可能是[应用程序重新启动而不是恢复]的重复问题。(https://dev59.com/_2Ik5IYBdhLWcg3wI7EF) - HexAndBugs
老实说,我搜索了一下,没有注意到那个问题。那种情况和我的主要区别在于,在他的情况下,如果你按“返回”键,你会回到之前运行的活动。而在我的情况下,如果你按返回键,你会退出应用程序(当你按应用程序图标时,之前运行的活动都被销毁了)。 - Marco Batista
1个回答

3

经过数天的寻找解决方案,我终于找到了问题所在。

问题出在将 android:launchMode="singleTask" 添加到每个活动中。

我将其从所有活动中移除,仅在根活动中保留,现在它按照我的预期工作。


关于 Pin Lock 活动怎么办?在这种情况下,Pin Lock 屏幕将被销毁。我希望在单击应用程序图标时将其恢复。 - Huy Nguyen
如果根活动具有启动模式single task,并且在启动其他活动时您尚未完成根活动,则始终会在单击应用程序图标时启动根活动。但是,这种解决方案目前无法正常工作。 - abhishek maharajpet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接