سؤال

يقوم تطبيقي بعدة مكالمات getFromLocationName من android.location.Geocoder; الفصل ، يتم التعامل مع هذا حاليًا في نشاطي الذي يعرض أيضًا بعض البيانات على نتائج تلك المكالمة.

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

بمجرد أن أحصل على النتائج ، لا أحتاج حقًا إلى تحديث ذلك (أعني كم مرة تتغير المواقع والإحداثيات الجغرافية؟)

سؤالي : كيف يمكنني تجنب الاضطرار إلى الاستعلام عن هذه البيانات في كل مرة يتم فيها تشغيل تطبيقي. هل يجب أن أفعل شيئًا بخدمة تقوم بتحميلها جميعًا عند بدء التشغيل؟ (يمكن أن يكون بطيئًا جدًا إذا كان عليه الاستعلام عن أكثر من 50 مرة). أو هل يجب أن أجري المكالمة ، نتائج المتجر في SQL ، ثم الاستعلام فقط في المرة القادمة إذا لم أحمل النتائج حاليًا؟

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

المحلول

إذا كنت ترغب في تخزينها بسرعة ، فإنني أوصي بتخزين أحدث النتائج في قاعدة بيانات SQLite. ربما يمكنك حتى الابتعاد عن استخدام تفضيل للتخزين السريع إذا لم تكن بحاجة إلى قاعدة البيانات لأي شيء آخر. ما عليك سوى تخزين أحدث التحسينات و DateTime ، ثم تحقق لمعرفة ما إذا كان وقت البيانات قد انتهت بعد x دقائق أو ساعات x (إذا كان هذا ما تريد القيام به).

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