解决方法,在app的启动页面例如SplashActivity中添加
if (!isTaskRoot()) {
finish();
return;
}
manifest.xml 中添加 android:alwaysRetainTaskState="true"
这个属性用来标记应用的task是否保持原来的状态,“true”表示总是保持,“false”表示不能够保证,默认为“false”。此属性只对task的根Activity起作用,其他的Activity都会被忽略。另外,如果有android:launchMode="singleTask" ,则把这句删除
<activity android:name=".splash.SplashActivity"
android:theme="@style/splashTheme"
android:alwaysRetainTaskState="true"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
当我们按HOME键返回桌面,任务栈的状态被保留着,
当我们点击应用图标打开再次应用时,系统会判断是否已经存在以Activity为的栈,
如果有,那么就直接使用该栈,并显示栈顶的Activity.