[问题] 内存回收

楼主: 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