Yaq*_*mad 5 static android memory-leaks weak-references inner-classes
我正在研究这篇文章,避免内存泄漏.有一些建议可以避免内存泄漏,其中一个是:
如果不控制生命周期,请避免活动中的非静态内部类,使用静态内部类并对内部活动进行弱引用.这个问题的解决方案是使用带有WeakReference的静态内部类到外部类,就像在ViewRoot及其W内部类中所做的那样
1-有人可以通过举例说明这一点吗?
2-如何使用Weak引用内部类的静态内部类?
3-在应用程序中使用该静态类避免内存泄漏的最佳实践是什么?
十分感谢.
在这篇文章中,答案显示了您正在寻找的内容的一个简单示例:\n如何在片段中实例化接口?
\n\n但是,一个问题是,有时一个 Fragment 的寿命比它的 Activity 长,例如,如果 Activity 发生配置更改(例如旋转),则该 Activity 会被销毁,但 Fragment 可以保持活动状态,然后重新附加到新的(旋转的) ) 活动。请参阅这篇文章:\n Android Fragment 生命周期随方向变化的变化
\n\n因此,您可能会对使用 WeakReference 的建议解决方案遇到问题,因为在轮换之后,您将获得对旧 Activity 的引用(或者可能什么也没有)。
\n\n什么似乎对我有用:
\n\n1)当我需要对 Activity 的引用时,调用 getActivity()。例如,可以在成员 AsyncTask 类的 onPostExecute() 中执行此操作。
\n\n2)检查结果是否为空(这种情况可能会发生:片段的寿命比其活动的寿命长)
\n\n3) 检查 Activity 是否 isFinishing() \xe2\x80\x93 您不想\xe2\x80\x99 在该状态下执行某些 UI 操作。
\n\n4) 将活动转换为您的界面类型。
\n\n5) 接口类型中调用回调。
\n 归档时间: |
|
查看次数: |
3105 次 |
最近记录: |