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

誰かがこれをチェックしている場合:

WeakReference同様のテーマについて調査した結果、 at この関数を使用すると、 を使用するよりもメモリのコストが高くなるという結論に達しましたStrongReference

このリンクを確認してください: https://stackoverflow.com/a/16975197/415038これは、この問題に関する私の別の質問です。良い完全な答えがあります。

于 2013-07-12T04:33:57.563 に答える