我确信这将是一个非常新手的问题但是我被困住了,我不知道如何摆脱这个问题!
我有一个有三个活动的应用程序,当我使用HOME按钮并再次打开应用程序时,它总是进入第一个活动,即使我在第二个或第三个活动。
编辑3: 我的应用程序有三个活动,第一个是主菜单,第二个是表格地图,第三个是表格数据。根据配置,关闭第三个活动必须将我带到第一个或第二个活动,当我离开第三个活动时,我不希望它留在活动堆栈上。我的程序从一个Activity到另一个Activity正常工作。我的问题是,当我使用Home Button时,我的应用程序会完成除第一个活动之外的所有活动。
也许我必须修改清单上的任何内容,或者我必须以特定的方式使用RestoreInstanceState但我正在搜索这么难以找不到任何东西。提前谢谢!
编辑1:我正在添加我的'应用'xml部分的清单:
<application
android:allowBackup="true"
android:icon="@drawable/icobaccus"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="com.example.tpv2_tablet.Activity_Start"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustPan"
android:configChanges="keyboardHidden|keyboard"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.tpv2_tablet.Activity_Zonas"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustPan"
android:configChanges="keyboardHidden|keyboard"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
<activity
android:name="com.example.tpv2_tablet.PrintDialogActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustPan"
android:configChanges="keyboardHidden|keyboard"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
<activity
android:name="com.example.tpv2_tablet.Activity_Mesas"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustPan"
android:configChanges="keyboardHidden|keyboard">
</activity>
</application>
编辑2:也许我在调用其他活动时做错了,或者我正在调用错误的标记:
Intent intent = new Intent(Activity_1.this, Activity_2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(intent);
答案 0 :(得分:1)
删除
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
来自activities
以外的所有launcher activity
要了解原因,请阅读Google Documentation here
除去:
android:noHistory="true"
因为这会从activity
activity stack
除去:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
这 :
Intent intent = new Intent(Activity_1.this, Activity_2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(intent);
了解原因检查this answer
答案 1 :(得分:0)
您需要在Android清单中设置android:clearTaskOnlaunch="false"。