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

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

استخدِم SupportNavigationFragment بدلاً من NavigationView، متى أمكن ذلك

SupportNavigationFragment هو برنامج تضمين لتسهيل عملية التعامل مع عمليات معاودة الاتصال لدورة حياة NavigationView، وبالتالي لن تحتاج إلى إدارة عمليات معاودة الاتصال هذه بنفسك. هذه الطريقة أقل عرضة للأخطاء وهي الطريقة المفضّلة لاستخدام 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 إلى الجزء بعد الإنشاء أو البدء، على التطبيق استدعاء الطرق المحدّدة نفسها بالترتيب المناسب من أجل إعداد حزمة Navigation SDK بشكل صحيح.

للحصول على إرشادات إضافية حول استخدام هذه الطرق، راجِع تطبيق العرض التوضيحي لحزمة Navigation SDK.

في حال استخدام NavigationView، استدعِ أحداث مراحل النشاط من النشاط أو الجزء، وليس كليهما

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