2 zhenweiyu zhenweiyu 于 2015.06.03 13:27 提问

Android中静态变量(activity的副本)内存泄露的问题

具体情境是:整个APP一步一步那样会进入多个activity,类似于注册的一个一个步骤,
由于是这样我设定每个activity跳转到另外一个的时候不finish,因为要保证可以退回到上
一步,所以我弄了每个activity里面都有一个static Activity mActivity的变量在onCreate
的时候mActivity=this,这样我就可以在一个Activity里面直接取到其他activity当前的情况,
但是应该存在内存泄露的问题,一直很纠结不知道有什么解决办法,还有静态变量会在
什么时机被回收呢?

4个回答

qq_22202859
qq_22202859   2015.06.03 13:34

你finish当前activity不就返回上个activity了吗?静态变量应该要退去程序才会被销毁和回收

qq_22202859
qq_22202859 是的,销毁APP时会被回收,设置null的话只是把它的占用空间大小改了,并不一定会被回收。
2 年多之前 回复
zhenweiyu
zhenweiyu 回复qq_22202859: 请教一下如果我在按返回键退出APP的时候用的system.exit(),就是结束这个进程,应该会被回收吧?
2 年多之前 回复
qq_22202859
qq_22202859 http://www.eoeandroid.com/thread-258437-1-1.html
2 年多之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2015.06.03 13:36

不用的时候手工设置为null

danielinbiti
danielinbiti 回复iamxxyu: 手工设为null,gc的时候可以回收,你要自己触发,你就是只有调用system.gc,但没必要。置为null就行了
2 年多之前 回复
zhenweiyu
zhenweiyu 想问一下,只要手工设为null,就触发GC回收它的了?
2 年多之前 回复
bdmh
bdmh   Ds   Rxr 2015.06.03 13:43

静态遍历在app进程结束时回收,否则一直在

Arnold9009
Arnold9009   2015.06.03 16:03

用fragment解决吧,每一步都用一个fragment来实现

Csdn user default icon
上传中...
上传图片
插入图片