سؤال

أنا أعمل على تطبيق Android يستخدم AccountManager لتخزين حسابات وبيانات الاعتماد.مشكلة واحدة كنت أحظيت بذلك هي أنه على الرغم من أنني أبعز في مجموعة من قيم السلسلة إلى حزمة بيانات AccountManager AddAccountExplically

قد راجعت للتأكد من أن الحزمة هي غير فارغة وأنه يحتوي على القيم قبل إضافة الحساب.ومعظم الوقت هذا هو الحال، ولكن كل مرة في حين أحصل على null عندما استخراج هذه القيم.

قيم العودة الفارغة أكثر شيوعا بعد أن قمت بحذف الحساب وإعادة إضافته.

أنا أفعل استعلامي داخل طريقة onaccountsupdated onaccountsupdelistener onaccountsupdateener ، لذلك يجب إضافة الحساب وجيدة للذهاب، أليس كذلك؟

شكرا لأي مساعدة

authorcativity giveacodicetagpre.

بعض الموضوع الآخر giveacodicetagpre.

هل كانت مفيدة؟

المحلول

أنا أدرك خطأ واحد في قرص العسل بالإضافة إلى ذلك يمكن أن يسبب مشكلتك.إذا حاولت GetUserData من الحساب قبل أن يتم تسجيل جميع مكالمات GetUserData اللاحقة بإرجاع NULL.

إذا نظرت إلى التعليمات البرمجية.يحتوي AccountManager على ذاكرة التخزين المؤقت في الذاكرة المدعومة من قاعدة بيانات SQLite.يفضل استدعاء GETUSERDATA ذاكرة التخزين المؤقت في الذاكرة UserData، حتى لو لم يتم تسجيله.إذا لم يتم تسجيله، فهذا يفسر أنه لا يوجد UserData.تسجيل حساب يملأ قاعدة البيانات فقط ولا يبطل المتجر الموجود في الذاكرة.

قد يسبب ذلك مشكلتك.

الحل هو إزالة الحساب قبل الاتصال addAccountExpliclically.

يا هذه المشكلة تمتص وهي علة ضخمة في AccountManger IMO وتسمح لأطراف ثالثة بجوهر تطبيقك.

نصائح أخرى

هل تستخدم جهاز HTC مع Android 4؟حصلت على العديد من التقارير عن هذه المشكلة من مستخدمي تطبيقات المزامنة الخاصة بي. جميع استخدم جهاز HTC مع SDK المستوى 15.

يشبه خطأ HTC بالنسبة لي.

أبلغ العديد من المستخدمين أن المشكلة قد اختفت بعد إعادة التشغيل.

تحديث: في الوقت نفسه وجدنا الحل السليم، انظر 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top