当我在使用主页按钮后为我的应用程序充电时,它会在我的第一个 activity 中启动
When I charge my app after using home button it starts in my first activity
我确定这将是一个真正的新手问题,但我被困住了,我不知道如何摆脱它!
我有一个应用程序有三个活动,当我使用主页按钮并再次打开应用程序时,它总是转到第一个 activity,即使我在第二个或第三个.
编辑 3: 我的应用程序有三个活动,第一个是主菜单,第二个是表格地图,第三个是表的数据。根据配置,关闭第三个 activity 必须将我带到第一个或第二个,而当我离开第三个 Activity 时,我不希望它留在 Activities 堆栈中。从 Activity 到另一个,我的程序运行良好。我的问题是,似乎当我使用主页按钮时,我的应用程序完成每个 Activity 除了第一个。
也许我必须修改清单上的任何内容,或者我必须以特定方式使用 RestoreInstanceState,但我搜索得很辛苦,但我找不到任何东西。提前致谢!
编辑 1: 我正在添加清单的 'application' 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);
您需要在 android 清单中设置 android:clearTaskOnlaunch="false"。
删除
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
来自所有 activities
除了 launcher activity
要了解原因,请阅读 Google Documentation here
删除:
android:noHistory="true"
因为这将从 activity stack
中删除 activity
移除:
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
我确定这将是一个真正的新手问题,但我被困住了,我不知道如何摆脱它!
我有一个应用程序有三个活动,当我使用主页按钮并再次打开应用程序时,它总是转到第一个 activity,即使我在第二个或第三个.
编辑 3: 我的应用程序有三个活动,第一个是主菜单,第二个是表格地图,第三个是表的数据。根据配置,关闭第三个 activity 必须将我带到第一个或第二个,而当我离开第三个 Activity 时,我不希望它留在 Activities 堆栈中。从 Activity 到另一个,我的程序运行良好。我的问题是,似乎当我使用主页按钮时,我的应用程序完成每个 Activity 除了第一个。
也许我必须修改清单上的任何内容,或者我必须以特定方式使用 RestoreInstanceState,但我搜索得很辛苦,但我找不到任何东西。提前致谢!
编辑 1: 我正在添加清单的 'application' 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);
您需要在 android 清单中设置 android:clearTaskOnlaunch="false"。
删除
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
来自所有 activities
除了 launcher activity
要了解原因,请阅读 Google Documentation here
删除:
android:noHistory="true"
因为这将从 activity stack
activity
移除:
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