如T  我们基本都是用exit   但是他们说要用finish  我想知道他们2个的区别  我是想点击一个按钮 然后退出正个程序
"
只调用finish()方法,程序还保存之前的数据状态,例如Hashtable里
退出时再加一句:System.exit(0);就没有之前的数据状态了。 "看别人的帖子里有这么一个回复  我想知道 程序还保存之前的数据状态的意思就是说没有完全退出  程序里的数据 资源 还占着内存   可以这样理解吗?

解决方案 »

  1.   

    finish() 仅仅是把activity从当前的状态退出,但是资源并没有给清理。
      

  2.   

    System.exit() kills your entire process. finish() just hides, stops and destroys your activity. Your process is still running. 
      

  3.   

    其实android的机制决定了用户无法完全退出application,即使用System.exit()。
    android自己决定何时该从内存中释放程序,当系统没有可用内存时,就会按照一定的优先级来销毁应用程序。
      

  4.   

    finish是Activity的类,仅仅针对Activity。同时一般仅仅推向后台,并没有立即释放内存,如果ram不吃紧的情况下
      

  5.   


    学习了   如果要涉及到SD卡的存储问题  exit会影响存储吗?
      

  6.   

    这个不清楚。
    楼主担心影响sd卡存储是指什么?例如正在存储中的时候,exit了,这时候应该不会继续存储吧,这时候已经让出cpu的执行了吧。
      

  7.   

    android可以强制制造退出的,比如制造个fc,截获fc消息。就行了,KillProcess myPid也行的
      

  8.   

    那么finish的工作机制到底是什么样的呢?那位大仙能详细总结一下呢?