Android学习笔记六:finish、onDestory、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的,将整个进程直接Kill掉。

  finish函数仅仅把当前Activity退出了,但是并没有释放他的资源。

  安卓系统自己决定何时从内存中释放应用程序。当系统没有可用内存到时候,会按照优先级,释放部分应用。

时间: 2024-12-05 13:13:31

Android学习笔记六:finish、onDestory、system.exit(0)的区别的相关文章

android开发时,finish()跟System.exit(0)的区别

这两天在弄Android,遇到一个问题:所开发的小游戏中有背景音乐,玩的过程中始终有音乐在放着,然后在我退出游戏后,音乐还在播放! 我看了一下我最开始写的退出游戏的代码,就是简单的finish()语句.我想应该是这个地方出了问题.后来想了想,以前好像见过有用System.exit(0)退出游戏的,然后就尝试了一下,发现问题果然解决了. 现在来彻底弄清楚两者的区别. 首先一个Activity是有生命周期的,onCreate,onStart,onResume,onPause,onStop,onDes

android finish和system.exit(0)的区别

finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理:当调用System.exit(0)时,杀死了整个进程, 这时候活动所占的资源也会被释放. 在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭程序,其实大多情况下该应用还在任务里运行着,其实这不是我们想要的结果. 我们可以这样做,当用户点击自定义的退出按钮或返回键时(需要捕获动

Android学习笔记六:六大布局

六大界面布局方式包括: 线性布局(LinearLayout).帧布局(FrameLayout).表格布局(TableLayout).相对布局(RelativeLayout).绝对布局(AbsoluteLayout)和网格布局(GridLayout) . 1. LinearLayout线性布局 LinearLayout容器中的组件一个挨一个排列,通过控制android:orientation属性,可控制各组件是横向排列还是纵向排列. LinearLayout的常用XML属性及相关方法 XML属性

android学习笔记六——Spinner

Spinner ==> Spinner是ViewGroup的间接子类,因此也可作为容器使用. 常用属性: android:prompt——设置该列表框选择框的提示信息 android:entries——使数组资源设置该下拉列表框的列表项目 注意:在使用Spinner时,如果可预先指导列表框内容信息,则不需要编写代码,只需要为Spinner指定 android:entries  属性即可实现一个下拉列表框. 实例一:最简单的使用方式 <?xml version="1.0" e

Android 关于finish()、onDestory()、System.exit(0)、onCheckedChanged(RadioGroup arg0, int checkId)总结

一.重写父类finish();函数. @Override public void finish() { //其他结束之前的操作,这里写的手机"back"键都有效 //使用关键字super调用父类的finish()函数 super.finish(); //结束动画 overridePendingTransition(R.anim.push_left_0, R.anim.push_left_1); } 这样写的好处如果使用了finish()函数,手机"back"键都有效

android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别

Activity.finish() 在你的activity动作完成的时候,或者Activity需要关闭的时候,调用此方法. 当你调用此方法的时候,系统只是将最上面的Activity移出了栈,并没有及时的调用onDestory()方法,其占用的资源也没有被及时释放.因为移出了栈,所以当你点击手机上面的"back"按键的时候,也不会找到这个Activity. Activity.onDestory() 系统销毁了这个Activity的实例在内存中占据的空间. 在Activity的生命周期中,

六、Android学习笔记_JNI_c调用java代码

1.编写native方法(java2c)和非native方法(c2java): package com.example.provider; public class CallbackJava { // C调用java空方法 public void helloFromJava() { System.out.println("hello from java"); } // C调用java中的带两个int参数的方法 public int Add(int x, int y) { int res

Android学习笔记(十六)——碎片之间进行交互(附源码)

碎片之间进行交互 点击下载源码 很多时候,一个活动中包含一个或者多个碎片,它们彼此协作,向用户展示一个一致的UI.在这种情况下,碎片之间能进行通信并交换数据十分重要. 1.使用上一篇中创建的同一个项目,在fragment.xml中添加TextView的标识id: android:id="@+id/lblFragment1" 2.在fragment2.xml中添加一个Button,用于与fragment1进行交互: <Button android:id="@+id/btn

Linux System Programming 学习笔记(六) 进程调度

1. 进程调度 the process scheduler is the component of a kernel that selects which process to run next. 进程调度器需要使 处理器使用率最大化,并且提供 使多个进程并发执行的虚拟 Deciding which processes run, when, and for how long is the process scheduler's fundamental responsibility. 时间片:th