android - 在不关闭主 Activity 的情况下打开信息 Activity

标签 android android-activity

我正在制作一个包含两个 Activity 的简单 Android 应用程序。一个 MainActivity 和一个 InfoActivity。我的 ActionBar 上有一个按钮,点击后我想打开我的 InfoActivity。在我的 InfoActivity 中,我有一个后退按钮,它会删除我的 InfoActivity 并再次打开我的 MainActivity。我可以在不关闭 MainActivity 的情况下打开 InfoActivity 吗?

我正在从互联网解析 JSON 我的主要 Activity ,我不希望它在我关闭 InfoActivity 时再次加载所有内容。

打开InfoActivity的代码:

  private View.OnClickListener onInfoBtnClick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MainActivity.this, InfoActivity.class);
            startActivity(intent);
        }
    };

InfoActivity类中关闭InfoActivity的代码:

private View.OnClickListener onBackBtnClick = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(InfoActivity.this, MainActivity.class);
        startActivity(intent);
    }
};

最佳答案

我可以在不关闭 MainActivity 的情况下打开 InfoActivity 吗?

不会,InfoActivity 会在前台被调用,MainActivity 在后台被调用,因为它会处于stopped 状态。问题是,如果您像这样在 InfoActivity 中触发 Intent,那么除了旧实例之外,还会有一个新的 MainActivity 实例。

向您的 Intent 调用添加一个标志以防止 MainActivity 的新实例。然后从栈中调用。

private View.OnClickListener onBackBtnClick = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(InfoActivity.this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
};

或者像 hamad 和 Aerrow 建议的那样简单调用 finish()。然后 InfoActivity 将被销毁,MainActivity 将从堆栈中调用。

关于android - 在不关闭主 Activity 的情况下打开信息 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154760/

相关文章:

java - Android Activity 可以调用自身吗?

java - 添加新的 ListView 项目并从另一个 Activity 获取项目的值

javascript - 如何防止Android浏览器上的键盘改变页面的高度?

android - QT 和 Android 8.0 : Error creating SSL context () 问题

AndroidPocketSphinx : How does the system know which recognizer is invoked?

android - 如何在 Android 中开始 Activity 之前显示进度对话框?

android - 如何提取 tar (ed) Android 存储库?

android - 判断 android activity 是否被打开 "for result"

android - 如何判断 android Activity 当前是否显示为对话框?

java - 使用单选按钮组在 Android Studio 中打开新 Activity