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

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

استخدِم 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() دائمًا

لا تستدعي طرق دورة الحياة هذه عدة مرات بدون استدعاء طريقة الإغلاق المقابلة أولاً. بالإضافة إلى ذلك، يُرجى العِلم أنّه إذا كان التطبيق نفسه يدير بعض وظائف callback لدورة حياة Android هذه، وتمّت إضافة NavigationView إلى المقتطف بعد الإنشاء أو البدء، على التطبيق استدعاء الطرق المحدّدة بأنفسهم بالترتيب الصحيح لإعداد حزمة تطوير البرامج (SDK) Navigation بشكل صحيح.

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

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

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