由于我无法控制的原因(所以请不要"你做错了#34;回复),我的Android应用需要很好地播放非常,即一个用户点击主页按钮,我的应用程序需要离开并释放所有资源(这是heayy,超过1GB RAM消耗等)。似乎在onPause()中调用finish()可以解决问题,但问题是:onPause()和onStop()在我开始自己的活动时也被调用,例如:一个偏好活动,我只想回归。
所以,我的问题是:如何确定失去焦点的原因?我可以想到两个选项,它们都不漂亮:
有什么想法吗?
答案 0 :(得分:0)
欢迎您use onUserLeaveHint()
。它可能涵盖某些情况(例如,HOME),但不是全部(例如,来电)。
请不要“你做错了”回复
恕我直言,“超过1GB的RAM消耗”已经为Play Store应用程序“做错了”。专业应用程序(例如,特定的企业方案,专用硬件)可能能够侥幸成功。
答案 1 :(得分:0)
选项1的一种方法是使用Application.registerActivityLifecycleCallbacks
来减少实施和维护的烦恼。至少通过这种方式,您不必在多个类中多次实现此逻辑,或者不必要地将您的活动强制转换为单个不相关的基类。
并非我必须支持此选项。另请注意,您需要API 14+。