查看SharedPreferences文档,它说:
"注意:目前这个类不支持跨多个进程使用.这将在以后添加."
所以它本身似乎并不是线程安全的.但是,对commit()和apply()有什么样的保证?
例如:
synchronized(uniqueIdLock){
uniqueId = sharedPreferences.getInt("UNIQUE_INCREMENTING_ID", 0);
uniqueId++;
sharedPreferences.edit().putInt("UNIQUE_INCREMENTING_ID", uniqueId).commit();
}
Run Code Online (Sandbox Code Playgroud)
是否可以保证uniqueId在这种情况下始终是唯一的?
如果没有,是否有更好的方法来跟踪持续存在的应用程序的唯一ID?