Difference between finish() and System.exit(0)

好久不见. 提交于 2019-11-27 01:31:46

Actually there is no difference if you have only one activity. However, if you have several activities on the stack, then:

  • finish() - finishes the activity where it is called from and you see the previous activity.
  • System.exit(0) - restarts the app with one fewer activity on the stack. So, if you called ActivityB from ActivityA, and System.exit(0) is called in ActivityB, then the application will be killed and started immediately with only one activity ActivityA

According to android Developer -

finish()

Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult().

System.exit(0)

The VM stops further execution and program will exit.

According to the documentation, The program will exit.
But it seems a bug in the documentation. In case of a java program, it is correct. But coming to Android, You will see the previous Activity from the stack.

Since Android coding is done using java coding, most of the documentation is same as those for java.
From documentation,

System.exit(0)
The VM stops further execution and program will exit.

For Android aspect, we have to replace the word 'program' with something else. May be Activity or Context.

Sa Qada answer is correct after my testing.

finish will close this activity and back to prevous.

but exit will close current activity too and empty all the activity in freeze and start again the previous activity

Actually there is no difference if you have only one activity. However, if you have several activities on the stack, then:

finish() - finishes the activity where it is called from and you see the previous activity. System.exit(0) - restarts the app with one fewer activity on the stack. So, if you called ActivityB from ActivityA, and System.exit(0) is called in ActivityB, then the application will be killed and started immediately with only one activity ActivityA

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!