在我onTouch()的一个听众,我现在决定如何处理触摸事件之前检查布尔用户设置:缓存SharedPreferences布尔值:性能是否会证明增加的复杂性?
boolean shouldCue = preferences.getBoolean(v.getContext().getString(R.string.should_cue), true);
观测logcat的,我可以看到,当用户触摸屏幕时,这一说法被称为无数次!
所以,我想通过实现onSharedPreferenceChanged()监听器来“缓存”shouldCue
布尔值。
我当然可以继续实施这个...观察忽略区别在我的超高速Android设备上。我不可能在“大多数Android设备”上测试这个,因为有太多的变化。
所以我的问题是:
即使偏好不是通过UI改变- 会onSharedPreferenceChanged()叫? (即以编程方式通过
editor.commit();
) - 假设SharedPreferences布尔值可以从UI或编程方式修改(但不能同时),缓存它的任务@Synchronized要求处理?
- 有关缓存与非缓存方法之间性能差异的任何估计? (为了简化问题,让我们假设我们指的是像Droid 1 A855这样的旧手机)
你不觉得更好的解决方案是调查为什么它被称为无数次? – jiduvah
@jiduvah它被称为无数次,因为这是'onTouch()'的工作方式:在简单的上/下,只有少数这样的调用。但是,如果用户移动手指......你会看到很多。没关系。这是应该的。这个想法是花时间在听众身上。通过设计。 – ateiob
为什么使用onTouch而不是点击?当然,如果听众如此快速地发射,实际上用户不知道他在按什么方式? – jiduvah