我有一个activity
A,其中有一个“子活动”,即activity
B.
当我创建一个活动时,就像在android中的这种情况一样,我选择了活动B,他的父母应该是活动A.
因此,当我启动我的应用程序时,我在活动B的icon
中有appbar
,我可以转到活动A.
在我的例子中,用户例如edit-text
并操纵活动A中的一些变量并使用Intent调用活动B.
现在,在活动B中,当我点击“返回”图标时,我将回到此案例活动A中的父活动,并且所有操纵数据都“离开”,因为屏幕将重新启动。
但是当我没有点击活动B中的图标而是点击我的手机上的“返回”时,我将回到活动A并且所有被操纵的数据仍将存在。
我的问题是,有没有办法,通过单击活动B中的后退图标返回活动A,而不会重新启动屏幕。因为这个图标是自动添加的,当我说,哪个活动必须是父类。我想,我可以用这个图标返回,但不重新启动屏幕,而是继续,我是“最后”的时间。
我向您展示活动B的清单文件的一部分:
<activity
android:name=".strassenfuehrer_screen.VideoPlayerHandlungsleitfadenStrassenfuehrerActivity"
android:label="Straßenführer > Handlungsleitfaden > VideoPlayer"
android:parentActivityName=".strassenfuehrer_screen.MitHandlungsleitfadenStrassenfuehrerScreenActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.derdoenerdon.ressourcencockpit.strassenfuehrer_screen.MitHandlungsleitfadenStrassenfuehrerScreenActivity" />
</activity>
您可以在此处看到活动B中的“后退图标”。
为了获得帮助,我非常感谢,我是android的新手并且遇到了困难。
非常感谢
答案 0 :(得分:3)
在活动A的清单中添加此属性:
机器人:launchMode = “singleTask”
这可以解决您的问题。
这可以确保BackStack中只有一个活动A实例。因此,每个任务只创建一次活动A.
希望这有帮助。
了解更多信息https://developer.android.com/guide/components/activities/tasks-and-back-stack
答案 1 :(得分:1)
您可以在onSaveInstanceState()
之前覆盖Activity
并保存数据。
Activity
在返回该活动时,您可以将保存的数据作为包以@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putInt("KEY1", Value1);
savedInstanceState.putInt("KEY2", Value2);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
方式获取。
onCreate()