android开发中finish()、onDestroy()、System.exit(0)的区别

本文解析了Android中Activity的生命周期,特别是finish()方法的行为。文中解释了finish()与onDestroy()的区别,以及如何正确使用finish()来避免用户误操作返回上一界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直有一个疑惑,为什么执行activity跳转之后的代码段依然会被执行,包括finish()之后的代码也一样会被执行(打Log发现的),今天就总结一下吧。

  • Activity.finish()
    当你的activity动作完成之后或者需要关闭当前页面的时候调用的方法。但是由于android在这之后只是将当前activity移出了Task(栈),并没有立刻调用onDestroy(),所以它的资源并没有被立刻释放,finish()后面的代码段一样可以继续执行。由于栈中已经没有了这个activity,所以当我们按back键的时候,就不会再回到这个界面了。
  • onDestroy()
    这个方法是由android自行调用的,当它被执行的时候,系统回收了当前activity所占用的资源,下次重新进入这个界面的时候,需要重新onCreate()创建。
  • System.exit()
    这个函数是面向应用程序的,当它被调用的时候,整个进程就结束了。
  • 附加
    finish()经常被用在防止回退的场景,比如用户登录成功之后,我们不希望用户通过back依然会回到登录界面,那么就可以在登录成功后执行finish()。注意finish()仅仅代表结束当前activity,我的理解就是仅仅是把这个界面推到了后台,我们看不见了而已,至于何时释放资源是由android系统自己决定的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值