الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سلسلة تعلم الأندرويد – الحلقة السابعة: دور حياة النشاط

بدأه khr2003 في 18 فبراير 2012 · 1 رد · 1,533 مشاهدة · في Android
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يمثل النشاط جزءاً أساسية من التطبيق حيث يتضمن الواجهات الرسومية بالإضافة إلى البرمجة اللازمة للتحكم بتلك الواجهات. وسوف نتعرف على دور حياة النشاط (كيف يبدأ، وكيف يعمل، ومتى ينتهي) في تطبيقات الأندرويد.

نظرة عامة:

يتألف التطبيق من نشاطات مختلفة تتصل فيما بينها بالقادح أو الزناد (Intent). عندما يتم الإنتقال من نشاط إلى آخر يقوم الأندرويد بوضع النشاط السابقة في متراصّة (Stack) شبيهة بوظيفة "الرجوع" في متصفحات الأنترنت. عند الضغط على زر الخلف في الأجهزة التي تعمل بالأندرويد يقوم الأندرويد بإرجاعك إلى النشاط السابق. هذه النقطة مهمة في معرفة دورة حياة التطبيق (Activity Life-cycle).

نظرة أقرب:

الصورة التالية تمثل رسماً يوضح حياة النشاط منذ بدايته مروراً بعرضه للمستخدم وحتى انتهائه.

post-195804-096295000 1329566453_thumb.p

هناك ثلاثة دورات في هذه الصورة:

الدورة الكاملة لحياة التطبيق Entire Lifetime، وهي التي تحصل بين onCreate(Bundle) وبين onDestroy(). يمكن القيام بتجهيز المتغيرات والكائنات في دالة onCreate() وإنهاؤها في onDestory().

الدورة المنظورة Visible Lifetime، وهي التي تكون في هذه الدورة يمكن للمستخدم أن يرى النشاط وربما يكون النشاط في الخلفية وليس في الواجهة أي لا يمكن التفاعل معه. فمثلاً عندما تظهر رسالة تحذير للمستخدم يكون النشاط مرئياً ولكن في الخلفية لتكون رسالة التحذير في الأمام. تكون هذه الدورة بين onStart() وبين onStop(). وفي هاتين الدالتين يمكن التحكم بما سوف يعرض للمستخدم في النشاط. يتم استدعاء هاتين الدالتين أكثر من مرة (في حالة تم الانتقال من نشاط أ إلى ب ومن ثم العودة إلى أ).

الدورة الأمامية Foreground Lifetime. هذه الدورة تكون بين الدالتين onResume() وonPause() ويمكن للمستخدم التفاعل مع النشاط بشكل طبيعي. يستعمل النشاط هاتين الدالتين بكثرة (كأن يدخل الجهاز وضع الاستعداد) ولذلك يجب مراعاة هذا الأمر عند إضافة أوامر لهاتين الدالتين في النشاط.

وبشكل عام يتألف النشاط من هذه الدوال، والتي يمكن استعمالها في كلاس فرعي تابع للكلاس Activity وكتابة ما تريد من أوامر:

public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);

protected void onStart();

protected void onRestart();

protected void onResume();

protected void onPause();

protected void onStop();

protected void onDestroy();
}

لتوضيح الدوال بشكل أكثر: http://www.tech-scraps.com/2012/02/activity-lifecycle/ (لم استطع وضع الجدول هنا).

أتمنى أن تكون هذه الحلقة مفيدة، وأرجو سماع آرائكم وتعليقاتكم.

المرفقات
activity-lifecycle.png

WebColorsLogo.png

#2

بسم الله الرحمن الرحيم

بارك الله فيك أخي , شرح واضح ومبسط

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…