是否需要优先性能优化?

时间:2017-03-28 12:25:55

标签: android performance sharedpreferences

我必须在适配器中读取一些首选项值。

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

我在getView()(在适配器中)调用以下代码:

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

我的问题是:将此值预先加载到内存并使用它是否更好?或者我可以保留此代码,Android会自行完成吗?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

问题是:您使用了多少次

prefs.getBoolean("key"), false);
你的代码中有

吗?

如果你这样做了一两次可能

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

就足够了,但是如果你从共享偏好中获得价值多次次,预加载会更快。