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

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

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

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

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

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