美文网首页
Android中Finish和onDestory过程

Android中Finish和onDestory过程

作者: Mikk丶 | 来源:发表于2019-03-13 12:25 被阅读0次

    本文借鉴:https://www.jianshu.com/p/7a31f8667b02

    Activity.finish()

    Callthis when your activity is done and should be closed.

    • 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法。
    • 当你调用此方法的时候,系统只是将最上面的 Activity (即当前的 activity )移出了栈,并没有及时的调用 onDestory() 方法,其占用的资源也没有被及时释放。
    • 因为移出了栈,所以当你点击手机上面的返回键时,也不会再找到这个Activity。

    Activity.onDestory()

    Perform any final cleanup before an activity is destroyed. This can happeneither because the activity is finishing on it, or because the system istemporarily destroying this instance of the activity to save space.

    • 在Activity摧毁之前任何活动最终会被清理。这可以发生要么因为活动完成,或因为系统暂时销毁这个实例的活动来节省空间。
    • 在Activity的生命周期中,onDestory()方法是他生命周期的最后一步,当activity执行到这个生命周期时,也就意味着activity将会完全释放,资源空间等就被回收了。
    • 如果需要重新启动这个activity,必须重新创建,执行onCreate()方法。

    System.exit(0)

    • 会将整个Application给干掉,退出进程。

    总结

    finish函数仅仅把当前Activity退出了,但是并没有释放他的资源。安卓系统回收机制自己决定何时从内存中释放应用程序。当系统没有可用内存到时候,会按照优先级,释放部分应用。所以建议一些业务逻辑最好不要写在onDestory()方法中,可以写到比如onPause()方法中。

    相关文章

      网友评论

          本文标题:Android中Finish和onDestory过程

          本文链接:https://www.haomeiwen.com/subject/sjjzpqtx.html