2012-12-21 66 views
6

出於測試目的,我需要輕鬆地重現Android系統決定保存後臺應用程序的狀態並殺死後臺應用程序時的情況,方式與通常用於內存優化的方式相同。事實上,當用戶切換回去時,我還需要測試這種已刪除進程的恢復過程。如何模擬Android操作系統卸載後臺應用程序?

直接的方法是打開應用程序,然後打開更多其他嘗試儘可能分配資源的任務。這太複雜,不可靠。

我找到了this question on SO,但答案意味着簡單地殺死進程,這似乎不是等同的,因爲在用戶決定切換回來時,似乎沒有辦法用已保存狀態進一步自動恢復被殺進程到應用程序。如果我理解正確,在這樣明確地殺死應用程序後,如果啓動,將從一開始運行,而不是從已保存的狀態運行。請糾正我,如果我錯了。

根據Android文檔,我需要的是由ActivityManager.killBackgroundProcesses(packageName)執行,但這是做這件事的程序化方式。是否有一個實用程序已經從UI中提供相同的選項?

回答

3

如果我理解正確,在顯式查殺應用程序後,如果啓動,將從最開始運行,而不是從已保存狀態運行。

這取決於應用程序的啓動方式。如果你的意思是從發射器圖標,是的。但是,用戶可以通過返回按鈕或通過最近的任務列表返回給您,具體取決於具體情況,這些將使用戶返回到他們離開的地點,而不是「開始」。

是否有一個實用程序已經提供了相同的選項從UI?

在Android 4.0以上版本的設備,在後臺您的應用程序,開拓近期任務列表(長按HOME或按專用近期]啓示),並掃描應用程序關閉的權利。這似乎基本上稱該軟件包名稱爲killBackgroundProcesses()

我還沒有在模擬器中試過這個,但可能它做了同樣的事情。

+1

謝謝。我已經在2.3設備上使用它,儘管沒有滑動:打開「管理應用程序」,「顯示背景任務」,點擊需要的背景,然後點擊「停止」就足夠了。該進程保留在後端堆棧(和最近進程)中,並可以用其狀態重新創建。 – Stan

相關問題