سؤال

أنا اختبرت أنه من الممكن للحصول على الروبوت لتمرير newVersion < oldVersion إلى SQLiteOpenHelper.onUpgrade() طريقة, أي.أنه يريد تطبيق إلى خفض قاعدة البيانات الخاصة به.

أنا لا أريد أن التعامل مع هذه القضية ، على الرغم من أنني أود أن يخطر المستخدم بطريقة أو بأخرى أن هناك إصدار أحدث من تطبيق (والتي على ما يبدو أنها قد ركبت سابقا) و التي يجب أن تكون باستخدام.

أي أفكار أو ما يمكن أن يكون أفضل طريقة لتحقيق هذا ؟ Toast? AlertDialog (لكن في أي سياق)?

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

المحلول

في الواقع ، يمكنك استدعاء هذه الطريقة بإصدار "جديد" أصغر من الإصدار "القديم" ، ولكن متى سيحدث ذلك؟

ما لم تكن تتوقع من المستخدمين إعادة تثبيت تطبيقك يدويًا ، والكتابة فوقها مع APK سابقًا ، فلا داعي للتفكير في هذا الأمر.

نصائح أخرى

لدينا عدة فروع نشطة من التطبيق لدينا (على سبيل المثالv1.x v2.x), و نحن نقدم النشرات داخليا للاختبار.هذا يعني اختبار أحيانا تثبيت الإصدار الأقدم على الجزء العلوي من أحدث واحد.

انها فكرة جيدة للتعامل بأمان في هذا السيناريو (مفيدة الخطأ المنبثقة, ضربة قاعدة البيانات بعيدا ، إلخ) ، وإلا فإن اختبار رؤية "فرض إنهاء" رسالة ، ثم علينا أن ننظر في adb logcat السجلات للتأكد من أن هذا كان بسبب عدم تطابق إصدار.

في البداية كنت قلقا من أن هناك سيناريوهات معقولة حيث أن هذا يمكن أن يحدث ، على سبيل المثالعند تنشيط نسخة قديمة في السوق الروبوت (مثلنتيجة كارثية خلل في الإصدار الجديد).

ومع ذلك ، الروبوت مستندات يبدو أنك لا تستطيع تفعيل قديم الإصدار:

لا يمكنك تنشيط جديد APK أن لديه نسخة رمز أقل من APK هو استبدال.

حتى ضرب هذا السيناريو قد تحتاج إلى إعادة إنشاء نسخة قديمة مع رقم إصدار جديد قبل أن تتمكن من تفعيلها.المنظمة البحرية الدولية فإنه لا يزال يستحق التعامل مع هذا السيناريو ، كما شخص يمكن بسهولة جعل هذا الخطأ في 4 صباحا بينما كان يحاول backout سيئة الإصدار!

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