当我使用以下代码开始活动时。
intent = new Intent(MainActivity.this, New1Activity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent, StaticValue.REQUEST_CODE_MENU_01);
在New1Activity
活动出现后,打开另一个包应用程序,如Facebook应用程序,然后返回(通过多任务切换或后退按钮)到我的应用程序。
在这种情况下,我预计会给出New1
活动,但会显示MainActivity。
此外,AndroidManifest.xml如下所示。
<activity
android:name="mypackage.MainActivity"
android:screenOrientation="landscape"
android:launchMode="singleTop"
android:noHistory="true"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".New1Activity"
android:launchMode="singleTop"
android:noHistory="true"
android:screenOrientation="landscape"
/>
由于我的应用效果管理,我在每个活动中都注意到noHistory
和singleTop
。
每当我从其他应用程序返回时,如何保持我的活动状态?
答案 0 :(得分:0)
哦,我的傻瓜。
我删除了noHistory="true"
并且它有效。 (比方说RTFM.LOL)
机器人:noHistory 当用户离开它并且它在屏幕上不再可见时,是否应该从活动堆栈中删除活动并完成(其被调用的finish()方法) - 如果它应该完成则为“true”,并且“false”如果不。默认值为“false”。 值“true”表示活动不会留下历史痕迹。它不会保留在任务的活动堆栈中,因此用户将无法返回该任务。 该属性是在API Level 3中引入的。