我在我正在开发的新应用中遇到一个奇怪的问题,如果我将应用发送到后台(主页按钮),然后使用应用图标重新启动应用,所有活动,除了根活动被销毁(在日志中我获取所有活动的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 restarts rather than resumes
这种情况与我的情况之间的区别在于,在这种情况下,主要活动是在其他活动之上启动的(您可以按回以返回之前的运行活动)。在我的情况下,其他活动被完全销毁,除了恢复的发射活动。
答案 0 :(得分:2)
经过几天寻找解决方案..我终于找到了问题。
问题是为每个活动添加android:launchMode="singleTask"
。
我从除了root活动之外的所有活动中删除了它,现在它正在按我的意愿工作。