2011-03-04 66 views
14

我們知道,當系統資源耗盡時,後臺的活動序列化其狀態並被操作系統殺死。當我們恢復它時,操作系統通過傳遞給onCreate方法的savedInstanceState恢復活動狀態。考慮到我們有責任處理將要序列化/恢復的內容,爲了測試我爲恢復而創建的代碼,我希望我的活動被終止。我怎樣才能做到這一點?強制通過應用程序菜單殺死應用程序不會有幫助。在Android中模擬活動死亡

回答

6

旋轉您的設備(或仿真器)。 Android會以新的方向保存,銷燬並重新創建活動。

+2

旋轉不夠好,因爲有些東西仍然在記憶中,就像活動的意圖一樣。當Android終止活動並重建它時,它也會重建意圖。這意味着如果你改變了意圖(保存狀態),那麼你將會有最新的改變,但是在運行時,意圖將會失去新的改變。 – 2011-09-20 09:47:01

-1

你也可以從Eclipse中殺死它。 轉到Android視圖。 YOu應該在設備標籤中看到進程列表。 點擊你的過程,然後點擊小「停止」按鈕。 瞬間死亡! 僅供參考如果您還可以通過點擊綠色小蟲來附加調試器

+1

謝謝,但這樣做我會殺死整個過程。我只是想殺死一個活動。 – 2011-03-04 22:04:19

+0

哦..對不起。我唯一能想到的是'開發工具'應用程序中的'不良行爲'選項。它在模擬器的應用程序抽屜中。您可以生成ANR並使某些線程崩潰。 – Tim 2011-03-04 22:19:11

0

與「管理應用程序」設置中的「強制停止」相比,下載的任務管理器以較低破壞性的方式殺死進程。示例:GO任務管理器。

任務管理器將殺死應用程序(和調試),但不知何故不是活動堆棧(不知道爲什麼)。

當您再次重新啓動應用程序時,將使用上次保存的軟件包/狀態調用onCreate。

缺點與Darrell's相比,該解決方案的缺點是您無法對其進行調試。

與Darrell's相比,此解決方案的優勢更接近現實生活場景。