أفضل الممارسات المتعلّقة بالتفاعل مع خريطة التنقّل

توضّح هذه الصفحة أفضل الممارسات للتفاعل مع خريطة التنقّل في تطبيقك.

استخدِم 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 لدورة حياة النشاط أو المكوّن، والتي تتلقّى هذه الأحداث بالترتيب. يضمن هذا النهج عدم حاجة التطبيقات إلى التنسيق بين المقاطع والأنشطة وتجنُّب إجراء مكالمات مكرّرة.