أساسيات برمجة الأندرويد الأحداث او الأنشطة في الأندرويد Android Basics Android Activities#
أساسيات برمجة الأندرويد الأحداث او الأنشطة في الأندرويد Android Basics Android Activities#
يمثل النشاط شاشة واحدة مع واجهة مستخدم تمامًا مثل نافذة أو إطار Java. يمثل نشاط Android فئة فرعية من فئة ContextThemeWrapper.
إذا كنت قد عملت مع لغة برمجة C أو C ++ أو Java ، فعليك أن ترى أن البرنامج يبدأ من الوظيفة الرئيسية (). بطريقة مشابهة جدًا ، يبدأ نظام Android برنامجه في نشاط يبدأ بمكالمة على طريقة رد الاتصال onCreate (). هناك سلسلة من أساليب رد الاتصال التي تبدأ نشاطًا وتسلسل طرق رد الاتصال التي تدمر النشاط كما هو موضح في الرسم البياني التالي لدورة حياة النشاط: (الصورة من باب المجاملة: android.com)
تحدد فئة النشاط ظهور المكالمات التالية: الأحداث. لا تحتاج إلى تنفيذ جميع أساليب الاسترجاعات. ومع ذلك ، من المهم أن تفهم كل منها وتنفذ تلك التي تضمن أن تطبيقك يتصرف بالطريقة التي يتوقعها المستخدمون.
التسلسل | الوصف وناتج الحدث |
---|---|
1 |
onCreate()
هذا هو رد الاتصال الأول ويتم استدعاؤه عند إنشاء النشاط لأول مرة
|
2 |
onStart()
يتم استدعاء رد الاتصال هذا عندما يصبح النشاط مرئيًا للمستخدم.
|
3 |
onResume()
يسمى هذا عندما يبدأ المستخدم في التفاعل مع التطبيق.
|
4 |
onPause()
لا يتلقى النشاط المتوقف مؤقتًا إدخال المستخدم ولا يمكنه تنفيذ أي تعليمات برمجية ويتم استدعاؤه عند إيقاف النشاط الحالي مؤقتًا واستئناف النشاط السابق.
|
5 |
onStop()
يتم استدعاء رد الاتصال هذا عندما يكون النشاط غير مرئي.
|
6 |
onDestroy()
يتم استدعاء رد الاتصال هذا قبل أن يتم تدمير النشاط بواسطة النظام.
|
7 |
onRestart()
يتم استدعاء رد الاتصال هذا عند إعادة تشغيل النشاط بعد إيقافه.
|
مثال
سوف يأخذك هذا المثال في خطوات بسيطة لإظهار دورة حياة نشاط تطبيق Android. اتبع الخطوات التالية لتعديل تطبيق Android الذي أنشأناه في الفصل Hello World Example -
الخطوة | الوصف |
---|---|
1 | ستستخدم Android studio لإنشاء تطبيق Android وتسميته باسم HelloWorld ضمن حزمة com.example.helloworld كما هو موضح في فصل Hello World Example. |
2 | تعديل ملف النشاط الرئيسي MainActivity.java كما هو موضح أدناه. الحفاظ على بقية الملفات دون تغيير. |
3 | قم بتشغيل التطبيق لتشغيل محاكي Android والتحقق من نتيجة التغييرات التي تمت في التطبيق. |
فيما يلي محتوى ملف النشاط الرئيسي المعدل src / com.example.helloworld / MainActivity.java. يتضمن هذا الملف كل من طرق دورة الحياة الأساسية. تم استخدام الأسلوب Log.d () لإنشاء رسائل السجل -
package com.example.helloworld; import android.os.Bundle; import android.app.Activity; import android.util.Log; public class MainActivity extends Activity { String msg = "Android : "; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(msg, "The onCreate() event"); } /** Called when the activity is about to become visible. */ @Override protected void onStart() { super.onStart(); Log.d(msg, "The onStart() event"); } /** Called when the activity has become visible. */ @Override protected void onResume() { super.onResume(); Log.d(msg, "The onResume() event"); } /** Called when another activity is taking focus. */ @Override protected void onPause() { super.onPause(); Log.d(msg, "The onPause() event"); } /** Called when the activity is no longer visible. */ @Override protected void onStop() { super.onStop(); Log.d(msg, "The onStop() event"); } /** Called just before the activity is destroyed. */ @Override public void onDestroy() { super.onDestroy(); Log.d(msg, "The onDestroy() event"); } }
تقوم فئة النشاط بتحميل كل مكون واجهة المستخدم باستخدام ملف XML المتاح في مجلد res / layout للمشروع. العبارة التالية بتحميل مكونات واجهة المستخدم من ملف res / layout / activity_main.xml:
setContentView(R.layout.activity_main);
يمكن أن يحتوي التطبيق على نشاط واحد أو أكثر دون أي قيود. يجب أن يتم الإعلان عن كل نشاط تحدده للتطبيق الخاص بك في ملف AndroidManifest.xml ، ويجب الإعلان عن النشاط الرئيسي للتطبيق الخاص بك في البيان مع يتضمن الإجراء MAIN وفئة LAUNCHER كما يلي:
xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ahmedalmahallawi.myapplication">
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:name=".MainActivity">
android:name="android.intent.action.MAIN" />
android:name="android.intent.category.LAUNCHER" />
إذا لم يتم الإعلان عن إجراء MAIN أو فئة LAUNCHER لأحد أنشطتك ، فلن يظهر رمز التطبيق الخاص بك في قائمة تطبيقات الشاشة الرئيسية.
دعنا نحاول تشغيل تعديل Hello World! تطبيق نحن مجرد تعديل. أفترض أنك قمت بإنشاء AVD أثناء إعداد بيئة. لتشغيل التطبيق من Android studio ، افتح أحد ملفات أنشطة المشروع وانقر على أيقونة "تشغيل" من شريط الأدوات. يقوم تطبيق Android studio بتثبيت التطبيق على AVD الخاص بك وبدء تشغيله ، وإذا كان كل شيء على ما يرام مع الإعداد والتطبيق ، فسيتم عرض نافذة Emulator وستظهر لك رسائل السجل التالية في نافذة LogCat في Android studio -
07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event 08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event 08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event
دعنا نحاول النقر فوق زر قفل الشاشة على محاكي Android وسيؤدي ذلك إلى إنشاء رسائل الأحداث التالية في نافذة LogCat في android studio:
08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event 08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event
دعنا نحاول مرة أخرى إلغاء قفل الشاشة على محاكي Android ، وستقوم بإنشاء رسائل الأحداث التالية في نافذة LogCat في Android studio:
08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event 08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event
بعد ذلك ، دعونا نحاول مرة أخرى النقر فوق الزر السابق ، زر Android Back Button الموجود على محاكي Android ، وسيقوم بإنشاء رسائل الأحداث التالية في نافذة LogCat في Android studio ، وهذا يكمل Activity Life Cycle لتطبيق Android.
08-23 10:37:24.806 4480-4480/com.example.helloworld D/Android :: The onPause() event 08-23 10:37:25.668 4480-4480/com.example.helloworld D/Android :: The onStop() event 08-23 10:37:25.669 4480-4480/com.example.helloworld D/Android :: The onDe
التسميات: Android الاندرويد
<< الصفحة الرئيسية