我有一個myApp,它首先啓動ActivityA,然後ActivityA啓動ActivityB。 ActivityB非常複雜,包含3個選項卡。如何將活動保存到磁盤並在重新啓動時重新加載它
我寫了另一個killApp來調用killbackgroundprocess來殺死我的應用程序來模擬系統資源回收一些應用程序。
點擊主頁按鈕後,運行killApp殺死我的應用程序,然後再次啓動myApp。我看了一段白色的背景板,然後ActivityB被重新粉刷。
我的理解是,當單擊主頁按鈕時,myApp的活動存儲到磁盤,重新啓動時,ActivityB位於活動堆棧的頂部,因此它的onCreate被再次調用。因爲ActivityB需要一些時間來初始化它的內容,所以我在整個活動準備好之前看了一段白色背景。
我的問題是:
1.如果應用程序啓動第一次,有沒有這樣的白色背景的問題,是因爲它在應用程序啓動時,Android系統將所有資源加載到內存中,因此在創建ActivityB,它不需要等待資源被加載?
2.如何解決上述白色背景問題?我的想法是將整個活動保存到磁盤,例如將整個活動對象序列化到磁盤,然後再次調用onCreate時,對其進行反序列化。但我不知道如何實現它。有什麼建議麼?謝謝。
首先,您不必編寫其他應用程序來殺死您的應用程序。你可以簡單地裝入並殺死應用程序的進程。另外請注意,Jelly Bean內置了一堆方便的開發工具,包括「不要保留活動」。如果你想查看每個活動在死亡時如何處理狀態,請啓用(設置,開發人員選項)。除此之外,請查看noisyass2指出的Activity lifecyle上的文檔(當您單擊home時,您對「存儲到磁盤上的活動的理解」不正確)。 –