1. 程式人生 > >android system.exist(0)與finish()的區別

android system.exist(0)與finish()的區別

system.exist(0)與finish()的區別,在這裡由於理解不深,只是簡單說一下它倆個應用後的不同效果:

finish():用於銷燬掉當前activity,如果該activity是root activity of stack,finish()後雖然會銷燬掉當前activity,但是並不會kill掉當前程序(整個應用程式的程序),程序的生命週期由系統進行管理,當記憶體不足時系統會自動kill掉長時間沒有執行的程序。

system.exist(0):會停止JVM,當然也就殺掉了當前程序,有兩種情況主要注意:
  如果呼叫system.exist(0)的不是root activity of stack,則在kill掉當前程序後會立即重新啟動一個新的程序,並且展現前一個activity,恢復狀態,跟finish()很像,但是已經不是原來的程序了。
  如果呼叫system.exist(0)是root activity of stack,則會kill掉當前程序,並且不會重新啟動一個新的程序。

具體可自己操作一下,檢視程序號及狀態:
檢視程序號