我有一个首选项,控制我的应用程序是否在用户单击按钮时播放声音(经常这样做,想到计算器).每次用户单击按钮时,都会调用以下方法:
private void playButtonClickSound() {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(parentActivity);
boolean sounds = sharedPrefs.getBoolean("prefSounds", false);
if (sounds) {
// blah
}
}
Run Code Online (Sandbox Code Playgroud)
我认为阅读偏好可能是一项昂贵的操作(类似于I/O操作,因为首选项是持久的),并且由于用户经常点击按钮,因此以这种方式执行操作可能是个坏主意.
一般来说,经常读/写偏好是个坏主意吗?如果是这样,可能还有其他方式,例如注册首选项更改侦听器以在首选项更改时收到通知?
我的程序中有这个问题:当我这样做时:
double a = Double.parseDouble(zero);
double b = Double.parseDouble(data);
double c = a+b;
String d = Double.toString(c);
Run Code Online (Sandbox Code Playgroud)
它给我一个回报String.例如,我有0.0英寸a和4.0英寸b,它返回0.04.0.
有人可以向我解释为什么以及我应该做些什么呢?
编辑:这是我的代码:
private void WriteMedia(String data) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("writemedia.txt", Context.MODE_PRIVATE));
String zero;
if(ReadMedia().isEmpty() == true)
{
zero = "0.0";
outputStreamWriter.write(zero);
}
else {zero = ReadMedia();}
double a = Double.parseDouble(zero);
double b = Double.parseDouble(data);
double c = a+b;
String d = Double.toString(c);
outputStreamWriter.write(d);
outputStreamWriter.close();
} catch (IOException e) {
Log.e("Exception", …Run Code Online (Sandbox Code Playgroud)