安卓开发-Activity中finish() onDestroy() 和System.exit()的区别(转)

本文详细解释了Android中Activity的生命周期,包括Activity.finish()、Activity.onDestroy() 和 System.exit(0) 的区别与作用。通过阅读本文,你可以了解到这些方法在何时使用最为合适。

Activity.finish()
Call this when your activity is done and should be closed. 
在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法。
当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放。因为移出了栈,所以当你点击手机上面的“back”按键的时候,也不会再找到这个Activity。
Activity.onDestory()
the system is temporarily destroying this instance of the activity to save space.
系统销毁了这个Activity的实例在内存中占据的空间。
在Activity的生命周期中,onDestory()方法是他生命的最后一步,资源空间等就被回收了。当重新进入此Activity的时候,必须重新创建,执行onCreate()方法。
System.exit(0)
这玩意是退出整个应用程序的,是针对整个Application的。将整个进程直接KO掉。

------------------------------------------

finish函数仅仅把当前Activity退出了,但是并没有释放他的资源。安卓系统自己决定何时从内存中释放应用程序。当系统没有可用内存到时候,会按照优先级,释放部分应用。

 

转自:http://blog.youkuaiyun.com/imzoer/article/details/9380807

转载于:https://www.cnblogs.com/hsqdboke/p/5278671.html

onDestroy: MainActivity 2025-09-02 19:46:49.064 11143-11143 WindowOnBackDispatcher com.raoshenglin.music050816 W sendCancelIfRunning: isInProgress=false callback=android.view.ViewRootImpl$$ExternalSyntheticLambda12@1cf3322 2025-09-02 19:46:49.065 11143-11143 DecorViewImmersiveImpl com.raoshenglin.music050816 D onDetachedFromWindow 2025-09-02 19:46:49.250 11143-11143 MediaPlayer com.raoshenglin.music050816 V resetDrmState: mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false 2025-09-02 19:46:49.250 11143-11143 MediaPlayer com.raoshenglin.music050816 V cleanDrmObj: mDrmObj=null mDrmSessionId=null 2025-09-02 19:46:49.256 11143-11143 FileUtils com.raoshenglin.music050816 E err write to mi_exception_log 2025-09-02 19:46:49.444 11143-25502 lin.music050816 com.raoshenglin.music050816 I This is non sticky GC, maxfree is 33554432 minfree is 8388608 2025-09-02 19:46:50.229 11143-25502 lin.music050816 com.raoshenglin.music050816 I This is sticky GC, maxfree is 33554432 minfree is 8388608 2025-09-02 19:46:50.822 11143-25502 lin.music050816 com.raoshenglin.music050816 I This is non sticky GC, maxfree is 33554432 minfree is 8388608 2025-09-02 19:46:51.385 11143-25502 lin.music050816 com.raoshenglin.music050816 I This is sticky GC, maxfree is 33554432 minfree is 8388608 2025-09-02 19:46:51.858 11143-25502 lin.music050816 com.raoshenglin.music050816 I This is non sticky GC, maxfree is 33554432 minfree is 8388608 2025-09-02 19:46:52.291 1855-1855 qspmHal vendor.qti.qspmhal-service E setAppInfoH atPid = 11143, gpuFname:com.raoshenglin.music050816, gpuFver:10
09-03
AEE_AED : $===AEE===AEE===AEE===$ 09-10 09:35:16.547610 442 442 D AEE_AED : p 2 poll events 1 revents 1 09-10 09:35:16.547919 442 442 D AEE_AED : PPM cpu cores:8, online:8 09-10 09:35:16.548837 442 442 D AEE_AED : aed_main_fork_worker: generator 0xef8401c0, worker 0xffbdc448, recv_fd 12 09-10 09:35:16.550172 9746 9746 I AEE_AED : handle_request(12) 09-10 09:35:16.551354 9746 9746 I AEE_AED : pid: 9650, tid: 9715, >>> com.corget <<< 09-10 09:35:16.551446 9746 9746 I AEE_AED : read_request: receive requirement from aee_core_forwar 09-10 09:35:16.551605 9746 9746 D AEE_AED : u:r:system_app:s0 09-10 09:35:16.551643 9746 9746 V AEE_AED : dashboard_record_update() : rec->module = com.corget 09-10 09:35:16.551664 9746 9746 D AEE_AED : Skip duplicated exception ! 09-10 09:35:16.551680 9746 9746 D AEE_AED : Exception Class: 3 09-10 09:35:16.551695 9746 9746 D AEE_AED : Module: com.corget 09-10 09:35:16.551711 9746 9746 D AEE_AED : Count: 14 09-10 09:35:16.551729 9746 9746 D AEE_AED : Last exception time: 1757468115 09-10 09:35:16.551729 9746 9746 D AEE_AED : 09-10 09:35:16.551746 9746 9746 I AEE_AED : aed_ne_core_session: skip duplicated exception 09-10 09:35:16.551908 9746 9746 E AEE_AED : handle_request: return status is fail 09-10 09:35:16.551939 9745 9745 I aee_core_forwarder: process_coredump: skip process NE 09-10 09:35:16.551974 9745 9745 I aee_core_forwarder: process_coredump: exit 09-10 09:35:16.553787 442 442 D AEE_AED : clear ppm settings 09-10 09:35:16.555121 442 442 D AEE_AED : $===AEE===AEE===AEE===$ 09-10 09:35:16.588504 497 497 I Zygote : Process 9650 exited due to signal 31 (Bad system call); core dumped
最新发布
09-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值