Mit Blick auf den SharedPreferences docs heißt es:SharedPreferences und Threadsicherheit
„Hinweis: zur Zeit diese Klasse nicht Unterstützung Verwendung über mehrere Prozesse Dies später hinzugefügt werden..“
So an und für sich scheint es nicht Thread Safe. Welche Art von Garantien gibt es in Bezug auf commit() und apply()?
Zum Beispiel:
synchronized(uniqueIdLock){
uniqueId = sharedPreferences.getInt("UNIQUE_INCREMENTING_ID", 0);
uniqueId++;
sharedPreferences.edit().putInt("UNIQUE_INCREMENTING_ID", uniqueId).commit();
}
Wäre es garantiert werden, dass die UniqueId in diesem Fall immer einzigartig war?
Wenn nicht, gibt es einen besseren Weg, eine eindeutige ID für eine Anwendung zu behalten, die fortbesteht?
Der Beispielcode wird mit dem nicht endgültigen Feld synchronisiert und ändert es. Ich bezweifle, dass du das willst. – Bloodboiler
Hoppla, schöner Fang. – cottonBallPaws
Was ist der 'uniqueIdLock'? Wo ist es definiert? Ist es statisch, final public etc? Vielleicht solltest du auch die angenommene Antwort wechseln? –