破坏活动如何运作?

时间:2017-05-19 14:09:31

标签: android android-intent android-activity

我是android开发的新手,有一些我不理解的生命周期活动,特别是我正在处理的以下应用程序示例。

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

  1. 在我的登录活动中,成功尝试后,有一个Intent启动主要活动,并完成()登录活动。
    ==>在那里,我的登录活动被销毁,因此不应再次显示。

    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("authentResult", tokenDto);
    startActivity(intent);
    finish(); //destroy activity to not open it with back button`
    
  2. 在我的主要活动中,我有一个断开连接按钮,可以创建一个启动(新的?)登录活动的Intent。
    ==>在那之前,一切正常,登录活动都是显而易见的。

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

    startActivity(loginActivity);

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

    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  
    } 
    
  4. 在mainActivity的onCreate中,我从这开始:

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

    有人可以向我解释我缺少什么,或者告诉我更好的方法直接关闭应用程序吗?

    如果事情不明确,请不要犹豫。

1 个答案:

答案 0 :(得分:0)

如果您在Manifest中将Login活动声明为主要活动,如果您在启动第二个活动时没有销毁它,那么我认为后退按钮将完成您所期望的所有操作而无需任何其他代码,如果您按下登录活动的关键是它将进入手机主屏幕

在Android应用程序上,系统决定何时关闭/终止应用程序。