繁体   English   中英

返回主屏幕,然后返回上一个活动

[英]Returning to the Home Screen and then returning to last activity

有真正的问题了解如何解决我的问题。

在主屏幕上,我有 2 个按钮

当用户单击第一个按钮时,它会启动一个新的 Activity。 我正在寻找的是如果用户点击返回应用程序返回到主屏幕。 如果用户再次单击第一个按钮,它将启动一个新活动。

如果用户单击第二个按钮,它将返回到上次通过单击按钮 1 启动的活动

我遇到的问题是当用户点击返回时如何保存活动的 state 还有如何在按下第二个按钮时调用该活动

谢谢你的时间

更新

我已经完成了其中的一部分,但仍然有问题。 如果我放一些我正在使用的代码,也许有人可以指出我出错的地方。

从主菜单调用新活动的代码

Intent intent = new Intent(MainMenu.this, NewClass.class);
        intent.putExtra("value1", value1);  
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

在新的 class 中,我添加了以下内容:

    @Override
public void onBackPressed() {
    //super.onBackPressed();
    Intent intent = new Intent(RoundScoring.this, MainMenu.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);
    Toast.makeText(this, "Back Button Pressed", Toast.LENGTH_LONG).show();
}

我在这个 class 中没有 onrestoreinstancestate 或 onresumne。 只有一个oncreate。 我是否必须添加类似这样的内容才能恢复实例

在主菜单的第二个按钮上,我添加了这个

Intent intentContiune = new Intent(MainMenu.this, NewClass.class);
            intentContiune.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(intentContiune);

谢谢

尝试这个:

主屏幕左键:打开带有意图标志的新活动,FLAG_ACTIVITY_NEW_TASK

Activity:在已启动的 Activity 上覆盖 onBackClick() 以使用 Intent 调用主屏幕,而不是完成它。 使用标志 FLAG_ACTIVITY_REORDER_TO_FRONT 保存活动 state 覆盖 OnSaveInstanceState

主屏幕右按钮:使用标志 FLAG_ACTIVITY_SINGLE_TOP 调用活动

有关标志的更多信息: http://blog.akquinet.de/2010/04/15/android-activites-and-tasks-series-intent-flags/

一种解决方案可能涉及传递包含您活动的 state 的捆绑包。 使用 startActivityForResult(),您可以返回带有活动 state 的包。 当用户单击您的第二个按钮时,传入该捆绑包并根据捆绑包的内容设置活动。 如果捆绑包不包含您要查找的信息,则使用默认值,就像您刚刚启动它一样。

了解更多信息:

Android:捕获活动的返回

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM