有谁知道是否有一种方法可以识别(在代码中,而不是 LogCat)GC 何时运行?也许有意图被激发?我可以分析 LogCat 输出,但如果我能够确定 GC 何时从我的代码运行,那就更理想了。
您可以使用弱引用技巧来做到这一点:
WeakReference<GcWatcher> mGcWatcher
= new WeakReference<GcWatcher>(new GcWatcher());
long mLastGcTime;
class GcWatcher {
@Override
protected void finalize() throws Throwable {
handleGc();
mLastGcTime = SystemClock.uptimeMillis();
mGcWatcher = new WeakReference<GcWatcher>(new GcWatcher());
}
}
现在...应用程序这样做是否真的正确是另一回事。 :) 据我所知,我们在 Android 中执行此操作的唯一地方就是此处的代码,其唯一目的是帮助我们在要求进程显式 GC 时(例如当它们进入后台时)变得聪明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)