天天看點

android 應用退到背景,類似最小化

From: http://blog.csdn.net/cool_ping/article/details/8237995

在activity中調用 moveTaskToBack (boolean nonRoot)方法即可将activity 退到背景,注意不是finish()退出。

參數為false代表隻有目前activity是task根,指應用啟動的第一個activity時,才有效;

如果為true則忽略這個限制,任何activity都可以有效。

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 1

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