2011-12-22 70 views
0

从哲学角度来看,在某些代码中使用偏好,在用户与活动交互时获取和设置值是否更好?或者更好地使用类字段,然后在一些onDestroy()中,或许将偏好设置为类字段的最终值,而不是想要保存的偏好。类别字段与偏好

//-- Is this better? 
if (a==preferences.getInt(pref1,default){ 
    preferenceEditor.putInt(pref2,someNumber); 
} 

//-- Or is this? 
if (a==field1){ 
    field2 = someNumber; 
} 
... 
onDestroy(){ 
    preferenceEditor.putInt(pref1,field1); 
    preferenceEditor.putInt(pref2,field2); 
} 

回答

0

所以,请不要“与喜好的工作”。

您在那里做什么(在您的第一个示例中)是与全局变量的交互。如果你能帮到你,请不要这样做。这是一种反模式。你不想在你的代码中使用全局变量。它使代码难以理解/难以测试。相反,无论何时你实例化一个类,阅读你的全局设置并将它们添加到你的类的字段中(最好在构造函数中)。课程本身不能了解您的偏好存储。

另外,不要使用onDestroy(WTF?)。以下是来自the reference的说明:

注意:不要指望将此方法称为保存数据的地方!

相反,将该逻辑放在onPause()中。

+0

感谢Alexandru!并感谢onDestroy()的提醒。 – aez 2011-12-22 14:29:58

0

由于性能原因字段应该优于喜好,但它也取决于值是如何经常改变