看板 AndroidDev 關於我們 聯絡資訊
各位大大好,最近碰到一個似乎是跟內存有關的問題... 在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
tac0wu:view pager? 07/12 17:11
tac0wu:developer options kill activity when BG 07/12 17:12
tac0wu:can easily reproduce this issue 07/12 17:14
elfsu:用saveInstance把activity b中oncreate中初始化的值存起來 07/13 08:48
elfsu:oncreate時,savedinstance有值的話,取出來回復activity B 07/13 08:49
kai1006:謝謝大家的意見!後來用別的方式解決了! 07/13 18:18