小编Ant*_*ulo的帖子

阅读/写作偏好是一项昂贵的操作吗?

我有一个首选项,控制我的应用程序是否在用户单击按钮时播放声音(经常这样做,想到计算器).每次用户单击按钮时,都会调用以下方法:

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操作,因为首选项是持久的),并且由于用户经常点击按钮,因此以这种方式执行操作可能是个坏主意.

一般来说,经常读/写偏好是个坏主意吗?如果是这样,可能还有其他方式,例如注册首选项更改侦听器以在首选项更改时收到通知?

io android preferences changelistener

6
推荐指数
1
解决办法
1611
查看次数

JAVA:Double.parseDouble + Double.parseDouble = String

我的程序中有这个问题:当我这样做时:

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)

java android

-2
推荐指数
1
解决办法
799
查看次数

标签 统计

android ×2

changelistener ×1

io ×1

java ×1

preferences ×1