android 如何手动触发回收?

查看 115|回复 8
作者:jeesk   
领导给个需求,要求应用在内存不足的时候,主动触发 activity 的回收。我们的应用是多窗口模式,类似与微信小程序的多窗口,打开 10 个可能导致内存不足, 这个时候领导非要提个需求,要求在内存不足的时候主动回收 activity, 研究了快 2 天了, 没有一点头绪。

触发, 回收, activity, Android

kyuuseiryuu   
感觉和各种清理大师的释放内存功能差不多,能做也得 root 权限。
learningman   
在应用里开一个 map ,存 activity 的弱引用。
开一个计时器,定时检查剩余的 Runtime freememory ,如果不够了,就用 lru 的淘汰算法从 map 里挑一个出来,finish 掉
jeesk
OP
  
@learningman 老大并不想窗口关闭掉。 比如有 3 个窗口,现在内存不够用了, 暂时把后台的 2 个窗口先回收内存, 窗口得保留着,进去还得重新打开内容。
learningman   
@jeesk 保存状态自动恢复呗
learningman   
比如弄个空 activity 当 stub 用来保持窗口,显示内容用 fragment 来处理,内存不够就序列化一下存硬盘。
如果连 10 个空 activity 的内存都不够,那不可能保持窗口。
zhanglihow   
主要看你 activity 用了什么东西,导致内存不足,bitmap 之类的?直接回收,要用再生成
yawenimy122   
有用户用这么耗性能的 app 吗?
jeesk
OP
  
@yawenimy122 这个你不用管? 反正内存绝对是不够用的。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部