gpt4 book ai didi

android - SharedPreferences apply() 和 commit() 什么时候会失败?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:58:40 46 4
gpt4 key购买 nike

我正在使用 SharedPreferences 将用户数据保存在我的应用程序中。我知道 commit()apply() 方法之间的区别,但我注意到如果 commit() 返回 true新值已成功写入持久存储,而 apply() 没有。

可能导致 commit() 方法返回 false 或 apply() 方法失败的原因是什么?

最佳答案

我们来看看the source code for commit() :

    public boolean commit() {
MemoryCommitResult mcr = commitToMemory();
SharedPreferencesImpl.this.enqueueDiskWrite(
mcr, null /* sync write on this thread okay */);
try {
mcr.writtenToDiskLatch.await();
} catch (InterruptedException e) {
return false;
}
notifyListeners(mcr);
return mcr.writeToDiskResult;
}

换句话说,如果线程在等待磁盘写入完成时被中断,或者如果磁盘写入由于某种原因失败(很可能是因为磁盘被满)。

关于android - SharedPreferences apply() 和 commit() 什么时候会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421774/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com