توضّح هذه الصفحة أفضل الممارسات للتفاعل مع خريطة التنقّل في تطبيقك.
استخدِم SupportNavigationFragment
بدلاً من NavigationView
كلما أمكن.
SupportNavigationFragment
هو عنصر لفّ لتوفير الراحة في التعامل مع callbacks
NavigationView
لدورة الحياة، لذا لا تحتاج إلى إدارة callbacks
هذه بنفسك. هذه الطريقة أقل عرضة للخطأ وهي الطريقة المفضّلة
لاستخدام Navigation في تطبيقك. عند استخدام SupportNavigationFragment
، احرص على عدم
استدعاء أحداث NavigationView
لدورة الحياة.
في حال استخدام NavigationView
، استخدِم ترتيبًا صارمًا عند استدعاء طرق دورة الحياة.
يستضيف NavigationView
خريطة التنقّل ويتتبّع عن كثب أحداث دورة الحياة
بصفتها أنشطة Android وشظايا، ويتّخذ إجراءات محدّدة عند استدعاء أحداث دورة الحياة
هذه. ينفِّذ NavigationView
عمليات إعداد متعددة
في NavigationView#onCreate
وNavigationView#onStart
، وعمليات تنظيف في
NavigationView#onStop
وNavigationView#onDestroy
، بالإضافة إلى عمليات معالجة غيرها من
أحداث دورة الحياة.
NavigationView
تُستخدَم طرق دورة النشاط بالمعنى نفسه المستخدَم في أنشطة Android
أو أقسامها. على سبيل المثال، onCreate()
من NavigationView
تقريبًا
تُترجَم إلى ويجب أن يتم استدعاؤها من خلال عمليات استدعاء دورة الحياة من نشاط Android
أو المكوّن. بما أنّ NavigationView
وظائف الاستدعاء المرتبطة بدورة الحياة تستند
إلى وظائف الاستدعاء المرتبطة بدورة حياة Android ويتمّ استدعاؤها بالترتيب نفسه، يجب استخدام ترتيب
محكم لطرق NavigationView هذه. بخلاف ذلك، قد
تواجه تسرُّبًا في الذاكرة وأخطاء في واجهة المستخدم وعدم تعديل الموقع الجغرافي وغيرها من المشاكل.
لمزيد من المعلومات حول دورة حياة الأنشطة على Android، يُرجى الاطّلاع على القسم مفاهيم دورة حياة النشاط في مستندات مطوّري تطبيقات Android.
يوضّح الجدول التالي الحالات التي يجب فيها استدعاء طرق دورة الحياة الأخرى، بعد طرق دورة الحياة المحدّدة:
طريقة رحلة المستخدِم | مكان الاستدعاء في دورة حياة النشاط | يتمّ استدعاؤها بعد طريقة دورة الحياة |
---|---|---|
onConfigurationChanged()
|
يتمّ استدعاؤه عندما تكون واجهة المستخدم في المقدّمة وتغيّر الإعدادات. | دائمًا بعد onStart()
|
onTrimMemory()
|
يتمّ استدعاؤه عندما يكون النشاط في الخلفية. | دائمًا بعد onPause()
|
onSaveInstance()
|
يتمّ استدعاؤه قبل إغلاق نشاط. | دائمًا بعد onStop()
|
لا تستدعي طرق دورة الحياة هذه عدة مرات بدون استدعاء
طريقة الإغلاق المقابلة أولاً. بالإضافة إلى ذلك، ضَع في اعتبارك أنّه إذا كان التطبيق نفسه يدير بعض عمليات الاستدعاء هذه لمراحل نشاط Android، وتمّت إضافة NavigationView
إلى المقتطف بعد الإنشاء أو البدء، على التطبيق استدعاء الطرق المحدّدة ذاتها بالترتيب الصحيح من أجل إعداد حزمة تطوير البرامج (SDK) لنظام التنقّل بشكل صحيح.
للحصول على إرشادات إضافية حول استخدام هذه الطرق، اطّلِع على تطبيق Navigation SDK demo.
في حال استخدام NavigationView
، استخدِم أحداث مراحل النشاط من النشاط أو المقتطف، وليس من كليهما.
للحفاظ على الترتيب الدقيق لأساليب دورة الحياة، يمكنك استدعاء هذه الأحداث من callbacks لدورة حياة النشاط أو المكوّن، والتي تتلقّى هذه الأحداث بالترتيب. يضمن هذا النهج عدم حاجة التطبيقات إلى التنسيق بين المقاطع والأنشطة وتجنُّب إجراء مكالمات مكرّرة.