[問題] 內存回收

作者: kai1006 (kai)   2014-07-12 16:17:50
各位大大好,最近碰到一個似乎是跟內存有關的問題...
在app中,Activity a 會啟動 Activity b,
然後b依序建立了4個fragment,c d e f,
最後讓畫面停留在fragment c 。
然後這時我將app縮小,並打開手機中其他10多個app,
接著再打開自己寫的app,
這時fragment c的畫面除了tab的icon還在之外,
顯示資料的地方幾乎全白。
我猜是因為在內存中的資料被回收掉,fragment c
沒有資料可以顯示,所以畫面全白。
但奇怪的地方是,我有打印log,
發現當重新打開app時,會先call一次fragment c的oncreate函數,
接著再call Activity b 的 oncreate 函數,然後又再 call 一次
fragment c的oncreate函數。
我有試著將 Acitivty b 設為 singleTask,讓b在該Task中只能有一個
實體,看能不能當重新打開app時,不要再建立新的b,但結果還是一樣。
所以目前不太曉得問題出在哪......
P.S.平常縮小app再立刻重新打開app不會碰到以上的情況。
作者: tac0wu (在BBS中流浪)   2014-07-12 17:11:00
view pager?developer options kill activity when BGcan easily reproduce this issue
作者: elfsu   2014-07-13 08:48:00
用saveInstance把activity b中oncreate中初始化的值存起來oncreate時,savedinstance有值的話,取出來回復activity B
作者: kai1006 (kai)   2014-07-13 18:18:00
謝謝大家的意見!後來用別的方式解決了!

Links booklink

Contact Us: admin [ a t ] ucptt.com