我已经查看了我能找到的所有线程,但没有一个真正解释了为什么找不到文件,所以我再次尝试使用代码。我在调试器中的 LG Spectrum 上运行了它。一切正常,除了没有创建我可以找到的文件,而且我无法读取我编写的名称/值对。
package com.example.locdir;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.SharedPreferences;
import android.content.Context;
public class MainActivity extends Activity {
int testint = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setup();
readback();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private void setup() {
SharedPreferences sharedPref = getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("testint", 475);
editor.commit();
}
private void readback() {
SharedPreferences sharedPref = getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
int testint = sharedPref.getInt("testint", 0);
}
}
根据调试器的行为,它运行良好。sharedPref.mFile.path 的值为“/data/data/com.example.locdir/shared_prefs/locdir_pref.xml”
运行后,该路径上没有该名称的文件。
当调用 readback 方法并发生 getInt 时, testint 仍然为 0。
我看不到任何日志投诉。
哦,我也试过 sharedPref.apply() 。一样。