android退出时finish()调用问题

本文深入探讨了在Android应用中使用不同方法关闭进程的机制,包括单Activity工程和多Activity工程的情况。详细解释了`finish()`方法与`android.os.Process.killProcess(android.os.Process.myPid())`的区别,以及在多Activity场景下后者的实际效果,即关闭当前Activity并重构前一个Activity的原理。

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

1、若是只有一个单独Activity的工程,例如Activity A 调用android.app.Activity.finish()的话,并不会关闭该工程,只是使之不处于前台,而被置于后台。

参考网上的方法,可以调用android.os.Process.killProcess(android.os.Process.myPid());这种方法确实是可以关闭该工程进程的,您可以到应用程序管理里头看看,该工程已不存在于Running中。

2、但是若是多个的Activity的工程,例如Activity A——>Activity B,而在Activity B中调用android.os.Process.killProcess(android.os.Process.myPid());

这种方法应该只是关闭当前的Activity,接着系统会重构之前的Activity A(记住,这里说的是重构,意思是:并不会调用Activity A 的onRestart(),而是调用OnCreate()) 

this sentence helped me a lot!!!

3、That's how Android works. The user/developer is not given any way to actually exit the application. When you call finish(), the application stack is just pushed to the background. It still exists in the memory. Android itself decides when to close the application(i.e. remove its instance from the memory) and generally this is done when your application becomes the oldest application which was not used for the longest time.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值