SharedPreferences.apply() и приложение ANRAndroid

Форум для тех, кто программирует под Android
Anonymous
SharedPreferences.apply() и приложение ANR

Сообщение Anonymous »

Я использовал метод 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 = getSharedPreferences(BASE, Context.MODE_MULTI_PROCESS);
}
return shadPrefBase;
}

private SharedPreferences.Editor editorShared = null;
private SharedPreferences.Editor getEditor() {
if(editorShared == null) {
editorShared = getSharedPreferences().edit();
}
return editorShared;
}
}
Сложите и разверните занятие!

Подробнее здесь: https://stackoverflow.com/questions/291 ... pplication

Вернуться в «Android»