开发者社区> 问答> 正文

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

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

展开
收起
爵霸 2016-07-29 16:52:16 2815 0
3 条回答
写回答
取消 提交回答
  • 1、不太清楚为什么题主不想finish上个activity,当你从activityA跳转到activityB的时候,A会放到task栈里面,并不会销毁,等到B finish的时候,A会回到前台,不需要为了返回做特殊处理;
    2、如果是想在B里面获取A的信息,可以把信息放在intent中,在B中可以获取

    2019-07-17 20:01:56
    赞同 展开评论 打赏
  • 不要用静态变量, android 本身提供了onSaveInstace() 和 onCreate(savedInstace) 的机制, 你可以随便创建 activity, 等内存不够的时候, 会被系统回收. 但是会调用onSaveInstace让你保存信息, 然后等一会你返回的时候重新创建的时候会给你savedInstance.这样用户就不感知了.

    2019-07-17 20:01:56
    赞同 展开评论 打赏
  • 你finish当前activity不就返回上个activity了吗?静态变量应该要退去程序才会被销毁和回收

    2019-07-17 20:01:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载