请检查以下代码, 我们可以在Utils类中使用如下所示的WeakReferences来处理上下文内存泄漏吗?
private static final String TAG = "Utils";
private static Utils instance;
private Context context;
public Utils(WeakReference<Context> context) {
this.context = context.get();
}
public static synchronized final Utils getInstance(Context context) {
if (instance == null) {
instance = new Utils(new WeakReference<Context>(context));
}
return instance;
}
答案 0 :(得分:0)
<div class="col-md-5 block block-one text-center">
<h6>
<span></span>
<span><strong class="fig-number">27</strong>%</span>
</h6>
<p>
<span>Employer said</span>
a bad hire cost them more than $50,000
</p>
</div>
:(如果你试图制作单例类,请将其设为私有)
private WeakReference<Context> context;
其他一切看起来都不错。
答案 1 :(得分:0)
您可以使用Leak Canary检查内存泄漏。它做同样的事情,但只有一行代码。它会告诉你每次内存泄漏的根源。
答案 2 :(得分:0)
不,WeakReference可以随时返回null,因此它使得这种无意义。
每次访问时,您都会检查WeakReference是否为null,然后您需要通过在methods参数中提供上下文来处理该情况,因此无需在字段中存储上下文。
更好(但不是最好)的解决方案是使用ApplicationContext,////////////////////////////////////////////////////////////////////////
//////////REMOVE STANDARD <P> FROM TINYMCE EDITOR/////////////////////////
///////////////////////////////////////////////////////////////////////
function my_format_TinyMCE( $in ) {
$in['forced_root_block'] = "";
$in['force_br_newlines'] = TRUE;
$in['force_p_newlines'] = FALSE;
return $in;
}
add_filter( 'tiny_mce_before_init', 'my_format_TinyMCE' );
,最好的方法是将上下文传递给每个方法调用。