小编Evg*_*niy的帖子

SharedPreferences.apply() 和 ANR 应用程序

我曾经使用 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)

android apply sharedpreferences android-activity

0
推荐指数
1
解决办法
1762
查看次数