我曾经使用 SharedPreferences.apply() 方法。当这个方法被频繁调用时,它会挂起应用程序。Commit() 方法很慢,但工作正常。
您可以在我的示例中获得 ANR。折叠和展开活动!
public class Main extends Activity {
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.main);
new Thread(new Runnable() {
@Override
public void run() {
while(true) {
SharedPreferences.Editor ed = getEditor();
ed.putString(getUUID(), getUUID());
ed.apply();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
public static String getUUID() {
return UUID.randomUUID().toString();
}
final private String BASE = "BASE";
private SharedPreferences shadPrefBase = null;
SharedPreferences getSharedPreferences() {
if(shadPrefBase == null) {
shadPrefBase = …Run Code Online (Sandbox Code Playgroud)