在activity中調用 moveTaskToBack (boolean nonRoot)方法便可將activity 退到後臺,注意不是finish()退出。android
參數爲false表明只有當前activity是task根,指應用啓動的第一個activity時,纔有效;this
若是爲true則忽略這個限制,任何activity均可以有效。spa
moveTaskToBack調用後,task中activity的順序不會發生變化,例如A啓動B,B中調用此方法退到後臺,從新啓動應用會調用B中的onRestart-onStart-onResume方法,不會從新調用onCreate,並且在B中按下back鍵返回的仍是A,這就是退到後臺的功能。orm
另外在activity中按下back鍵,實際是調用了finish方法,應用退出。雖然應用已經退出,但進程沒有被殺死,android中一個應用運行於獨立的一個虛擬機實例中,因此在從新啓動應用時一個類中的靜態對象還保持着運行時的狀態,注意在合適位置復位這些狀態。對象
關於moveTaskToBack 方法,官方API解釋以下:進程
Since: API Level 1虛擬機
Move the task containing this activity to the back of the activity stack. The activity's order within the task is unchanged.it
nonRoot | If false then this only works if the activity is the root of a task; if true it will work for any activity in a task. |
---|
If the task was moved (or it was already at the back) true is returned, else false.table