الروبوت إغلاق وفتح قاعدة بيانات SQLite في مستوى التطبيق

StackOverflow https://stackoverflow.com//questions/25020110

سؤال

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

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

لم أستطع إيجاد طريقة للكشف عن OnFinish / Ondestroy .... في مستوى التطبيق، لإغلاق قاعدة البيانات هناك. الحل الوحيد الذي يمكنني القيام به هو عدم إغلاق قاعدة البيانات. ولكن هذا يمكن أن يعطيني مشاكل ربما عند محاولة فتحه مرة أخرى في حالة أندرويد أغلقت حقا طلبي، لا؟

هل هناك طريقة لفرض إغلاق التطبيق؟ (أعتقد أن هناك ليس كذلك). هل هناك طريقة للكشف عن إغلاق التطبيق لإغلاق قاعدة البيانات هناك؟ هل سأواجه مشاكل في محاولة فتح قاعدة بيانات غير مغلقة إذا تم إغلاق التطبيق بواسطة Android؟ أو أندرويد يغلق قاعدة البيانات المرتبطة بالتطبيق الذي سيقوم بإغلاقه؟

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

المحلول

الحل الوحيد الذي يمكنني فعله هو عدم إغلاق قاعدة البيانات

صحيح، وهذا هو الإجابة الصحيحة.

ولكن هذا يمكن أن يعطيني مشاكل ربما عند محاولة فتحه مرة أخرى في حالة أندرويد أغلقت حقا طلبي، لا؟

لا.

هل هناك طريقة للكشف عن إغلاق التطبيق لإغلاق قاعدة البيانات هناك

لا.

هل لدي مشاكل في محاولة فتح قاعدة بيانات غير مغلقة إذا تم إغلاق التطبيق بواسطة Android؟

لا.

أو Android يغلق قاعدة البيانات المرتبطة بالتطبيق الذي سيتم إغلاقه؟

لا.

إغلاق قاعدة بيانات لا تفعل كل ذلك كثيرا.sqlite هو المعاملات؛تتم كتابة جميع عمليات كتابة قاعدة البيانات الخاصة بك على القرص عند تنفيذ هذه المعاملات.

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