如何隱藏當前Activity到後臺

    有時候開發需要隱藏Acitvity,而不是關閉,這時候就需要使用到moveTaskToBack()函數。

    moveTaskToBack()方法:在activity中調用 moveTaskToBack (boolean nonRoot)方法即可將activity 退到後臺,注意不是finish()退出。


參數說明:
參數爲false——代表只有當前activity是task根,指應用啓動的第一個activity時,纔有效;
參數爲true——則忽略這個限制,任何activity都可以有效。

說明:判斷Activity是否是task根,Activity本身給出了相關方法:isTaskRoot()


    moveTaskToBack調用後,task中activity的順序不會發生變化,例如A啓動B,B中調用此方法退到後臺,重新啓動應用會調用B中的onRestart-onStart-onResume方法,不會重新調用onCreate,而且在B中按下back鍵返回的還是A,這就是退到後臺的功能。

    另外在activity中按下back鍵,實際是調用了finish方法,應用退出。雖然應用已經退出,但進程沒有被殺死,android中一個應用運行於獨立的一個虛擬機實例中,所以在重新啓動應用時一個類中的靜態對象還保持着運行時的狀態,注意在合適位置復位這些狀態。


關於moveTaskToBack 方法,官方API解釋如下:

public boolean moveTaskToBack (boolean nonRoot)
Since: API Level 1Move the task containing this activity to the back of the activity stack. The activity's order within the task is unchanged.

Parameters
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.

Returns
If the task was moved (or it was already at the back) true is returned, else false.


發佈了53 篇原創文章 · 獲贊 17 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章