StrictModeDiskReadViolation when

android

Solution

You must do fileSystem operations on a separate thread, then the error will go away.

you can also turn off the StrictMode (but i am not recommending that)

StrictMode.ThreadPolicy old = StrictMode.getThreadPolicy();
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder(old)
    .permitDiskWrites()
    .build());
doCorrectStuffThatWritesToDisk();
StrictMode.setThreadPolicy(old);

Problem

I am trying to use SharedPreferences to store some user settings for my app. I have this code in my Activity.onCreate method: ``` sharedPreferences = context.getSharedPreferences("MMPreferences", 0); soundOn = sharedPreferences.getBoolean("soundOn", true); ``` but it gives me this error (it is the getBoolean that generates the error): ``` 11-10 16:32:24.652: D/StrictMode(706): StrictMode policy violation; ~duration=229 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=2079 violation=2 ``` and the result is that the value is not read and I also get the same error when I try to write to the SharedPreferences with this code (it is the commit that generates the error): ``` SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("soundOn", soundOn); editor.commit(); ``` The only answers for this error I can find is about a strict mode warning, but my code actually fails to read/write the SharedPreferences key/value data.

Original source

Related problems