2017-03-28 9 views
0

いくつかの設定値をアダプタに読み込む必要があります。優先度パフォーマンス最適化が必要ですか?

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
boolean value; 

私は(アダプタで)getView()に次のコードを呼び出す:

value = prefs.getBoolean("key"), false); 

私の質問です:それはメモリにこの値をプリロードし、それを使用することをお勧めしますか私は保つことができますこのコードとアンドロイドはそれだけでそれをしますか?

答えて

0

質問です:あなたは、あなたのコード内で

prefs.getBoolean("key"), false); 

をどのくらいの時間使用していますか?

あなたがそれを行う場合は1/2回

value = prefs.getBoolean("key"), false); 

かもしれは十分ですが、共有環境設定から値を取得する場合回プリロード複数が速くなります。

+0

何度も何度も商品があるので、商品ごとに値を読みます。 – Michalsx

1

いくつかの値に対して複数の変更が加えられたアプリでSharedPreferencesを使用する場合は、メモリの値を後で変更する方がよいでしょう。あなたはSharedPreferencesにそれを保存することが...例えば

、あなたのApplicationクラスが、これを持っていることがあります。

public class MyApplication extends MultiDexApplication { 
    public static boolean flag = false; 
} 

そして、あなたのgetView方法で

、あなたはこのように、カウンタの値に複数の変更を行っている。

public class BrandCountriesAdapter extends BaseAdapter { 

    .. 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    //.... 
    MyApplication.flag = true; 
    //.... 
    return convertView; 
} 

その後、あなたのアプリのある時点で、あなたはあなたの好みにflag値を保存することがあります

prefs.putBoolean("key"), MyApplication.flag); 
+0

ありがとう、ありがとう。 – Michalsx

+0

私は助けてうれしかった^。^ – blueware

関連する問題