当前位置: 首页 > 知识库问答 >
问题:

销毁活动如何运作?

钱睿范
2023-03-14

我是Android开发新手,有一些关于生命周期活动的东西我不理解,特别是关于我正在研究的以下应用程序示例。

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

> < li>

在我的登录活动中,如果尝试成功,将启动主活动,并完成()登录活动。< br>==

Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("authentResult", tokenDto);
startActivity(intent);
finish(); //destroy activity to not open it with back button`

在我的主要活动中,我有一个断开连接按钮,该按钮创建了一个启动(新?)登录活动的 Intent。
==

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

start activity(loginActivity);

在登录活动中,使用后退按钮应该会关闭应用程序。< br >为此,我向主活动发送一个带有特殊标志的intent来完成它(这样back按钮就不会唤醒主活动),然后我完成登录活动。调用onDestroy方法,我看到登录窗口自动关闭。< br>==

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();
       }

有人能向我解释我错过了什么,或者告诉我直接关闭应用程序的更好方法吗?

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

共有1个答案

毋宸
2023-03-14

如果您在清单中声明登录活动为主要活动,如果您在启动第二个活动时没有销毁它,那么我认为后退按钮将在没有任何额外代码的情况下完成您所期望的一切,如果您在登录活动上按后退键,它将转到手机主屏幕

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

 类似资料:
  • 在发布本文之前,我不会列出我读过的所有参考资料,但我已经广泛阅读了有关stackoverflow的类似问题,以及所有关于活动/片段生命周期和维护状态的android开发人员文档,还没有找到解决方案。 以下是我的设想: 我有一个主要的活动(PulseActivity),它使用FragmentPagerAdapter。每个片段显示我从服务器检索的数据的单独列表。按下PulseActivity的acti

  • 我有亲子活动。父活动将自定义状态存储在onSaveInstanceState中(super.onSaveInstanceState是在所有需要的项目打包到bundle中之后调用的),然后在onCread中读取状态,但是出于某种原因,SavedInstanceState总是为空。 以下是父活动的日志事件序列:onPause- 我对这个问题有点不清楚——请告诉我我可能错过了什么。 谢谢

  • 我尝试使用在viewpager中的另一个片段中添加一个片段。我收到以下错误, Java语言lang.IllegalStateException:android上的活动已被破坏。支持v4.app。碎片管理。android上的enqueueAction(FragmentManager.java:1549)。支持v4.app。回溯记录。android上的Committenternal(backbackr

  • 问题内容: 据我所知(很少),给出了两种方法: 然后: 其他更好的方法?我在这里劈头发吗? 问题答案: 您正在寻找。 但是要考虑到 您不能显式销毁对象。 它会保留在那里,但是如果您取消设置对象,并且脚本将PHP推入内存限制,则不需要的对象将被垃圾回收。我会选择(而不是将其设置为null),因为它似乎具有更好的性能(未经测试,但已记录在PHP官方手册的注释中)。 也就是说,请记住,PHP总是在页面被

  • 问题内容: 你们有以下问题的解决方法吗? 在注册活动的onDestroy中(当用户按下后退按钮时),我调用一个新活动,以便用户可以输入当天的某些最终生产数据,然后通过电子邮件发送该报告。问题在于,在刚刚开始的活动中,对getIntent的调用返回null,而我必须从那里获取数据。 ================================================== ========

  • MainActivity在我的应用程序中打开。考虑这个场景, MainActivity(%1)当前正在运行时。通知来了,用户点击并打开Mainactivity(2)。它起作用了。当我点击后退按钮时。Mainactivity(2)被销毁。MainActivity(1)显示给用户,应用程序冻结。我正在寻找关闭MainActivity(1)的方法。