如何在杀戮中释放android应用声称的所有资源?

问题描述

我有一个只有1个活动Activity和许多片段的android应用。有1种使用exoplayer的音频播放器服务。

在播放任何歌曲时,向上滑动即可杀死一些资源(大约150-200 MB),该资源已被该应用程序宣称,即使通过垃圾回收也无法释放-如通过Profiler(在Android Studio中)看到的那样。这些资源似乎是exoplayer的MediaSources。

通过日志语句,我可以确认MainActivity上的onDestroy在服务未绑定和销毁的地方也被调用。服务中的onTaskRemoved不会被调用。以下两个代码调整导致资源被释放:

  1. 如果我在MainActivity的onStop()而不是onDestroy()中以无限制的方式销毁服务-但我不希望这样做,因为我想在应用程序处于后台(未终止)时让音乐继续播放。
  2. 如果最终用户先反复按回以关闭该应用程序,然后向上滑动即可杀死。
  3. 最终用户通过电话中的“设置”强制停止也可以释放资源。

我可能会缺少什么,以便即使取消绑定并销毁服务,也无法在被杀死时释放服务要求的资源? 非常感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...