I'm talking about programming in android.
In early days I thought that, finish()
closes current activity and go back to the previous in Activity stack, and System.exit(0)
closes the whole application.
But I was wrong. I made a small experiment and understood that Both will finish only the current Activity.
The only differences that I could notice is that, in Android 2.3.3
- The ActivityResult is propagated back to
onActivityResult()
usingfinish()
. WhereasonActivityResult()
not called forSystem.exit(0)
.
But in Android 4.2.2, onActivityResult() is called for both! and Intent was null for exit(). (I tested only in these 2 devices)
- There is a time lag when using exit() whereas
finish()
is faster.(seems like more background operations are there in exit())
So,
what's the difference between two?
In which situations, I can use exit()?
I believe there is something more that I'm missing in between the two methods. Hope somebody can Explain more and correct me.
Thanks
EDIT UPON REQUEST:
Make an Android application with 2 Activities. Call second Activity from Launcher activity using Intent. Now, inside the second activity, upon a button click, call System.exit(0);
.
"The VM stops further execution and program will exit."????(according to documentation)
I see first activity there. Why? (You are welcome to prove that I'm wrong/ I was right)
System.exit()
i would not recommend it. Usefinish()
. For navigation you can use navigation drawer. – Aleurone