[問題] 內存回收

看板AndroidDev作者 (kai)時間11年前 (2014/07/12 16:17), 編輯推噓4(402)
留言6則, 3人參與, 最新討論串1/1
各位大大好,最近碰到一個似乎是跟內存有關的問題... 在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不會碰到以上的情況。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.218.50 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1405153073.A.1CC.html

07/12 17:11, , 1F
view pager?
07/12 17:11, 1F

07/12 17:12, , 2F
developer options kill activity when BG
07/12 17:12, 2F

07/12 17:14, , 3F
can easily reproduce this issue
07/12 17:14, 3F

07/13 08:48, , 4F
用saveInstance把activity b中oncreate中初始化的值存起來
07/13 08:48, 4F

07/13 08:49, , 5F
oncreate時,savedinstance有值的話,取出來回復activity B
07/13 08:49, 5F

07/13 18:18, , 6F
謝謝大家的意見!後來用別的方式解決了!
07/13 18:18, 6F
文章代碼(AID): #1JmEyn7C (AndroidDev)