القائمة الرئيسية

الصفحات

8-شرح ماهي الـ Activity ؟وماهي دورة حياة الـactivity؟ بالتفصيل

سوف نتعلم في هذه الدرس على ماهي Activity   والتي يمكن نلخصها في عدة نقاط:

1-ببساطة الـ Activity  هي عبارة عن الشاشة التي يراها المستخدم في التطبيق أي بمعنى أن كل شاشة  في تطبيقك تسمى بـ Activity  .

2-أي تطبيق يمكن أن لايحتوي على أية Activity  ويمكن أن يحتوي أكثر من شاشة لكن غالبا تجد أن أي تطبيق يحتوي على الأقل شاشة واحدة فقط.

3-الغرض الرئيسي من الـ activity هو لإتاحة المستخدم التفاعل مع تطبيقك كـ الضغط على الإزرار أو إدخال بيانات.


4-أي activity  تكون في بعض الأحيان ظاهرة للمستخدم وبعض الأحيان تكون مخفية   وهو مايسمى بـ دورة حياة activity  وسنقوم بشرحه بالتفصيل.




ممن ماذا تتكون الـ Activity؟

في أي مشروع اندرويد تتكون الـ activity  من ثلاثة عناصر رئيسية وهي:

1-كلاس جافا ووظيفة هذا الكلاس التحكم في العناصر التي يتم إضافتها الى هذه الشاشة كمثال:عندما نريد وضع عمل معين عند الضغط على زر معين في هذه الشاشة .. يتم كتابة هذه الكود في كلاس الجافا.

2-ملف layout  :وهو عبارة xml  يكون في حافظة res>layout  ويحتوي هذا الملف على تصميم الواجهة التي ستظهر للمستخدم وكيفية ترتيب العناصر عليها.

3-ملف R.java :يقوم بالربط بين ملف الـlayout  وكلاس الجافا بحيث أن كل عنصر في ملف layout يتم تحديد id  فريد ويتم تخزين الـid  في ملف R.java  ثم يتم اللوصول لهذه اللعنصر والتحكم فيها من خلال id .

كيفية إنشاء الـ Activity

نقوم بإنشاء الـ Activity بعدة خطوات :
1- إنشاء كلاس مشتق من الكلاس AppCompatActivity   وهو النسخة الجديدة من Activity  القادمة مع النسخة الجديدة من اندرويد مارشميلو.

2-عمل Override  لدالة onCreate  وهي دالة تتنفذ عند إنشاء الـ Activity .

3-ربط الـ Activity  بملف الـ  layout  ويكون ذلك عبر استدعاء الدالة setContentView  وثم تمرير لها id  الخاص بملف الذي نريده أن يكون الواجهه  الرسومية  كمثال نريد أن يكون ملف main.xml:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package com.blogspot.muteealjabri.Activites;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
    }

4-إضافة Activity   إلى ملف Manifest.xml 
ويجب إضافة كل Activity إلى ملف Manifest.xml  وبدونها لن يتم عرض هذه الـ  Activity  في البرنامج.
ويمثل هذا الشكل كيفية إضافة الـ Activity  في ملف manifest.xml :


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?xml version=”1.0” encoding=”utf-8” ?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
 package=”com.blogspot.muteealjabri.Activities”
 android:versionCode=”1”
 android:versionName=”1.0” >
   <application android:icon=”@drawable/icon”
 android:label=”@string/app_name” >
      <activity android:name=”.MainActivity”
               android:label=”@string/app_name”>
          <intent-filter>
              <action android:name=”android.intent.action.MAIN” />
              <category android:name=”android.intent.category.LAUNCHER” />
          </intent-filter>
     </activity>
   </application>
 <uses-sdk android:minSdkVersion=”9” />
</manifest>

 تتم إضافة الـ  activity  داخل الوسم <application>بواسطة الوسم <activity>  ويحتوي على بعض الخصائص:


1-الخاصية android:name=".MainActivity"
هنا يتم تحديد ملف الجافا لهذه الـActivity 

2-الخاصية android:label="@string/app_name"
هنا يتم تحديد العنوان الذي سيظهر بأعلى الشاشة عند فتح هذه الـActivity
يوجد بداخل الوسم <activity> وسم آخر وهو <intent-filter> ووظيفة هذه الوسم يقوم بفحص الـ intent  الذي ستتقبله هذه الـ activity   وسيكون هناك درس خاص لشرح مفهوم Intent  في الاندرويد.

شرح Life Cycle دورة حياة الـ activity:

دورة حياة Activity  هي مجموعة من الاحداث التي تمر بها الـ Activity  ويتم تعريفها عبر مجموعة من الداول الموجودة في الكلاس AppCompatActivity وهي كمايلي:

1-()onCreate :ويتم إستدعائها عند إنشاء الـ Activity  اول مرة.
2-()onStart : ويتم إستدعائها قبل ظهور الـ Activity  على الشاشة.
3-()onResume : ويتم إستدعائها عندما يتم ظهور الشاشة أمام المستخدم.
4-()onPause : ويتم إستدعائها عندما تكون الـ activity  في حالة pause  وتكون الـ activity التي قبلها في حالة onResume.. وغالبا يتم أستدعاء هذه الدالة عند الضغط على زر Back  في جهاز الهاتف.
5-()onStop : ويتم إستدعائها عندما تكون  الـ Activity مخفية أي غير ظاهرة للمستخدم.
6-()onDestory : ويتم إستدعائها عند تدمير الـ Activity  بواسطة النظام وهنا يتم إزالة الـ activity  من الذاكرة.
7-()onRestart : ويتم إستدعائها عندما تكون الـ Activity  في حالة stop  وثم تعود للظهور مرة أخرى.

ويبين الشكل دورة حياة الـ activity:


وهنا نكون انتهينا من شرح الـActivity  في الاندرويد .. رايكم يهمني بالتعليقات.