gpt4 book ai didi

android - 销毁 Activity 如何运作?

转载 作者:行者123 更新时间:2023-11-29 02:41:05 27 4
gpt4 key购买 nike

我是 android 开发的新手,我不了解生命周期 Activity ,尤其是我正在处理的以下应用程序示例。

在我的应用中,我有一个登录 Activity 和一个主要 Activity 。

  1. 在我的登录 Activity 中,尝试成功后,有一个 Intent 启动主 Activity ,并完成()登录 Activity 。
    ==> 在那里,我的登录 Activity 被破坏了,所以这不应该再次出现。

    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("authentResult", tokenDto);
    startActivity(intent);
    finish(); //destroy activity to not open it with back button`
  2. 在我的主要 Activity 中,我有一个断开连接按钮,它创建一个启动(新的?)登录 Activity 的 Intent。
    ==> 到此为止,一切正常,显示登录 Activity 。

    Intent loginActivity = new Intent(this, LoginActivity.class);

    开始 Activity (登录 Activity );

  3. 在登录 Activity 中,使用“后退”按钮应该会关闭应用。
    为此,我向主 Activity 发送一个带有特殊标志的 Intent 以完成它(因此后退按钮不会唤醒主 Activity ),然后我完成登录 Activity 。 onDestroy 方法被调用,我看到登录窗口自行关闭。
    ==> 从这里我希望应用程序被关闭。但是出现了一个“新的”登录 Activity ,我怀疑这将是第一点的 Activity ,所以我有点迷路了......

    public void onBackPressed() {
    Log.d(TAG, "BACK PRESSED - loginActivity");
    //Finish MainActivity
    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("EXIT", true);
    startActivity(intent);
    finish(); // finish login activity
    }

在 mainActivity 的 onCreate 中,我从这个开始:

       if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}

谁能向我解释我遗漏了什么,或者告诉我直接关闭应用程序的更好方法?

如果有什么不清楚的地方,请随时告诉我。

最佳答案

如果您在 list 中将登录 Activity 声明为主要 Activity ,如果您在启动第二个 Activity 时没有销毁它,那么我认为后退按钮将执行您期望的所有操作而无需任何额外代码,如果您按下后退在登录 Activity 上键入它将转到手机主屏幕

Android 应用程序是决定何时关闭/终止应用程序的系统。

关于android - 销毁 Activity 如何运作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com