السبت، 23 نوفمبر 2019

أساسيات برمجة الأندرويد الأحداث او الأنشطة في الأندرويد Android Basics Android Activities#

أساسيات برمجة الأندرويد الأحداث او الأنشطة في الأندرويد Android Basics  Android Activities#

أساسيات برمجة الأندرويد الأحداث او الأنشطة في الأندرويد Android Basics  Android Activities#


يمثل النشاط شاشة واحدة مع واجهة مستخدم تمامًا مثل نافذة أو إطار Java. يمثل نشاط Android فئة فرعية من فئة ContextThemeWrapper.
 إذا كنت قد عملت مع لغة برمجة C أو C ++ أو Java ، فعليك أن ترى أن البرنامج يبدأ من الوظيفة الرئيسية ().  بطريقة مشابهة جدًا ، يبدأ نظام Android برنامجه في نشاط يبدأ بمكالمة على طريقة رد الاتصال onCreate ().  هناك سلسلة من أساليب رد الاتصال التي تبدأ نشاطًا وتسلسل طرق رد الاتصال التي تدمر النشاط كما هو موضح في الرسم البياني التالي لدورة حياة النشاط: (الصورة من باب المجاملة: android.com)
يمثل النشاط شاشة واحدة مع واجهة مستخدم تمامًا مثل نافذة أو إطار Java. يمثل نشاط Android فئة فرعية من فئة ContextThemeWrapper.  إذا كنت قد عملت مع لغة برمجة C أو C ++ أو Java ، فعليك أن ترى أن البرنامج يبدأ من الوظيفة الرئيسية ().  بطريقة مشابهة جدًا ، يبدأ نظام Android برنامجه في نشاط يبدأ بمكالمة على طريقة رد الاتصال onCreate ().  هناك سلسلة من أساليب رد الاتصال التي تبدأ نشاطًا وتسلسل طرق رد الاتصال التي تدمر النشاط كما هو موضح في الرسم البياني التالي لدورة حياة النشاط: (الصورة من باب المجاملة: android.com)


Android Activity lifecycle

تحدد فئة النشاط ظهور المكالمات التالية:  الأحداث.  لا تحتاج إلى تنفيذ جميع أساليب الاسترجاعات.  ومع ذلك ، من المهم أن تفهم كل منها وتنفذ تلك التي تضمن أن تطبيقك يتصرف بالطريقة التي يتوقعها المستخدمون.
التسلسلالوصف وناتج الحدث
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" />
            
I


إذا لم يتم الإعلان عن إجراء 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





التسميات: