Frage

Ich arbeite an einer Android-App, die den AccountManager verwendet, um Konten und Anmeldeinformationen zu speichern.Ein Problem, das ich habe

Ich habe geprüft, um sicherzustellen, dass das Bundle nicht leer ist und dass es die Werte enthält, bevor das Konto hinzugefügt wird.Und das meiste Zeit ist dies der Fall, aber alles, wenn ich diese Werte abfragen möchte.

Die Null-Rückgabewerte sind häufiger, nachdem ich das Konto gerade gelöscht habe, und es erneut hinzugefügt habe.

Ich mache meine Abfrage in der ataccountsupdatedatated -methode einer -Accountsupdatelistener -Animage, sodass das Konto hinzugefügt und gut zu gehen, richtig?

Danke für jede Hilfe

authenticatoraktivität generasacodicetagpre.

ein anderer Thread generasacodicetagpre.

War es hilfreich?

Lösung

Ich bin mir eines Bugs in Bienenwabe zubereitet, der Ihr Problem verursachen kann.Wenn Sie versuchen, den Account zu taten, bevor es registriert ist, werden alle nachfolgenden GetUserData-Anrufe null zurückgegeben.

Wenn Sie den Code ansehen.AccountManager verfügt über einen In-Memory-Cache, der von einer SQLite-Datenbank unterstützt wird.Die Anrufe GetUserData bevölkert den In-Memory-Cache-UserData, auch wenn er nicht registriert ist.Wenn es nicht registriert ist, interpretiert es das als kein UserData.Registrieren eines Kontos populiert nur die Datenbank und ungültig macht den In-Memory-Speicher nicht.

Dies kann Ihr Problem verursachen.

Die Problemumgehung besteht darin, das Konto zu entfernen, bevor sie addcountExpliziert anruft.

ya Dieses Problem saugt und ist ein großer Fehler in AccountManger-IMO und ermöglicht Dritten der Essenz dos Ihre App.

Andere Tipps

Verwenden Sie ein HTC-Gerät mit Android 4?Ich habe viele Berichte über dieses Problem von Benutzern meiner Sync-Apps erhalten. alle von ihnen verwendete ein HTC-Gerät mit SDK-Stufe 15.

sieht mir aus wie ein HTC-Fehler.

Mehrere Benutzer berichteten, dass das Problem nach einem Neustart verschwunden ist.

update: Inzwischen fanden wir eine ordnungsgemäße Problemumgehung, siehe https://stackoverflow.com/a/29776224/1558654

I had a similar issue, but my problem turned out to be attempting to store a long userData value instead of a String. Converting my long to a string for storage, and parsing it into a long again when pulling it out did the trick for me.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top