سؤال

كنت أتساءل متى يكون أكثر ملاءمة لحفظ نموذج العرض للصفحات الفردية.

أرى احتمالين:

  1. احفظ حالة كل صفحة (إنها ViewModel) في كل مرة تقوم فيها Navagitefrom بحيث يتم حفظها بالفعل إذا تم إنهاء التطبيق وإعادة تنشيطه أثناء عملية Tombstoning
  2. في الحدث الذي تم إلغاء تنشيط التطبيق ، انتقل إلى جميع الصفحات الموجودة في مكدس التنقل وحفظ حالتها (ViewModel) ثم أعد حقنها في الحدث المنشط للتطبيق.

ما هي الطريقة الصحيحة للتعامل معه؟

شكرا سيمون

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

المحلول

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

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

أمثلة على معلومات محددة في الصفحة هي: تم إدخالها ولكن البيانات غير المحفوظة ؛ ومواقف التمرير.

نصائح أخرى

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

هذه المقالة يقدم أيضًا تفسيرًا لائقًا مع أمثلة لدورة حياة التطبيق والتمييز ، والتمييز بين التراجع/الإغلاق ، وإلغاء تنشيطه ، والتعقب.

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

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

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

هذا شيء فكرت فيه البعض أيضًا.

لقد قمت بتعميم وجهة نظري على هذا.

وفر في وقت مبكر قدر الإمكان.

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

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

يمكن أن تشمل الضرورات التي قد تحفزك على تأجيل الادخار ،

  • اعتمادًا على بنيةك ، قد يكون من غير المريح تنفيذ حفظ البيانات على مستوى الصفحة.
  • اعتمادًا على حجم البيانات المراد حفظها ، وبنية نموذج التخزين المعزول الخاص بك ، فقد ينتقص من الأداء في محاولة بشكل كبير حفظ في صفحة أو مستوى حقل.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top