2013-10-17 78 views
4

我最近一直在努力改進我的知識和技能,對於過程中的應用程序的流程生命週期的各個點管理Android應用程序的狀態。具體來說,我一直在測試maintain and share global data between activities的各種方法。在我的測試應用程序中,爲了測試全球應用程序數據和/或單身數據的重新創建,我需要等待幾個小時或更長時間才能讓手機決定其他進程更重要,並將我的測試應用程序在process lifecycle documentation中定義的空進程狀態。此時,應用程序的數據被釋放,並且一旦應用程序再次被帶到前臺,需要重新創建。如果做得不正確,應用程序最後一次已知狀態的重新初始化可能會由於各種原因導致強制關閉。測試Android應用程序流程生命週期和恢復狀態當空進程到達狀態

所以,我的問題是,除了等着這個有機地發生,有測試此發生的真實世界的方式。例如,什麼樣的QA用例看起來像是測試應用程序進入後臺一段(非常)延長的時間,然後在應用程序達到空進程狀態時再次被帶到前臺?

+0

我認爲強制關閉設置中的應用程序,或將應用程序滑出活動應用程序(長按主頁)不起作用? – bclymer

+0

執行此類操作只會殺死應用程序,而不模仿操作系統如何管理文檔中描述的流程生命週期。例如,如果您在應用程序的活動#2中並且它進入了後臺。兩天後,當你再次打開應用程序時,操作系統已經摧毀了實際的應用程序進程。但保留的Empty進程狀態將嘗試以您離開它的相同狀態打開應用程序。在這種情況下,活動#2。如果狀態數據沒有妥善保留,可能會發生不好的事情。這些類型的場景是我對測試感興趣的。 – SBerg413

回答

3

我已經做了一些試驗&誤差與此並想出了一個很好的解決方案:

最終,這歸結爲每個活動能夠恢復它的獨立狀態。這也適用於應用程序。 「空過程」狀態是操作系統放入應用程序後的最終狀態,它被認爲不再重要。

這裏是什麼工作了我來測試我的應用程序的空進程情景:

  1. 問題打開應用程序頁面。
  2. 按下手機上的「主頁」 按鈕。
  3. 打開不低於3個高資源使用率 應用與長滾動列表視圖(我用Facebook,YouTube和谷歌 Play商店)。
  4. 在每個應用程序滾動列表視圖下的好 量使用的系統資源。
  5. 你所有的應用程序3完成後, 重新打開您的應用程序。

爲每個活動運行上述測試&片段允許測試不僅活動和/或片段以及整個應用程序的完整重新創建。

這是一個有點P.I.T.A.的,但它是有效的。