请检查此代码:
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Locale loc = null;
WeakReference<Locale> locWeak = new WeakReference<Locale>(loc);
String country = locWeak.get().getDisplayCountry(new Locale("", tm.getSimCountryIso()));
Log.i(TAG,"Country is: "+country);
WeakReference
在这里有点无用,因为我在“新语言环境”中强有力的引用。
任何人都可以建议WeakReference
采用更好的方法:
Locale loc = new Locale("",tm.getSimCountryIso());
我使用WeakReference
的原因是因为我不需要依赖此Object
,因为随着应用程序的进展它变得无用。其次,我需要保持清洁的记忆,因为我稍后需要做一些繁重的任务。
由于
答案 0 :(得分:0)
如果有人检查这个:
在对类似主题进行研究之后,我得出结论:在此函数中使用WeakReference
在内存中比使用StrongReference
更昂贵。
检查此链接:https://stackoverflow.com/a/16975197/415038这是我的另一个问题。那里有完整的答案。