0

请检查此代码:

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,因为随着应用程序的进展它变得无用。其次,我需要保持清晰的记忆,因为我以后需要做一些繁重的任务。

谢谢

4

1 回答 1

0

如果有人检查这个:

在对类似主题进行研究后,我得出的结论是 using WeakReferenceat 这个函数在内存上比 using 更昂贵StrongReference

检查此链接:https ://stackoverflow.com/a/16975197/415038这是我关于此事的另一个问题。那里有很好的完整答案。

于 2013-07-12T04:33:57.563 回答