گروه مقاله : اندروید
تاريخ انتشار : 1396/04/10 - 11:23
كد :7677

اکتیویتی های اندرویدی

هر نرم افزاری برای فراخوانی کدها از یک سری دستور استفاده می کند مثلا در زبان C شما دستور () main را استفاده می کنید. در اندروید این دستور به نام activity می نامند.

اکتیویتی های اندرویدی

Android-Activities

یک اکتیویتی اندرویدی نشان دهنده یک صفحه یا یک رابط کاربری مانند یک پنجره یا فرم از Java.Android activity است که در زیر کلاسی از ContextThemeWrapper تعریف میشود.

اگر شما با زبان های برنامه نویسی  C,C++ یا Java کار میکنید. حتما دیده اید که برنامه شما با بخشی به عنوان عملگر main() آغاز بکار می کند. این دقیقاً مانند اندروید استودیو است ، اندروید استودیو اکتیویتی را با متد فراخوانی به نام onCreate() شروع می کند. در این قسمت یک متد فراخوانی حضور دارد که اکتیویتی را آغاز می کند. و یک تکه از این متد فراخوانی را در ادامه نشان خواهیم داد تا آن را در دیاگرام چرخه حیات یک کد مشاهده کنید. این دیاگرام از سایت android.com کپی برداری شده است:

 

آموزش آندروید

 

کلاس Activity رخدادهای فراخوانی زیر را تعریف می کند. شما نیاز به اجرای تمام متد های فراخوانی ندارید. هرچند که لازم است که آنها را خوب بشناسید و در موقع لزوم فراخوانی کنید تا نرم افزار شما همانگونه که کاربران انتظار دارند، عمل کند.

شماره
متد فراخوانی و توضیحات آن
1
onCreate()
این اولین متد فراخوانی است و زمانی اجرا میشد که یک activity ایجاد میشود .
2
onStart()
این متد فراخوانی زمانی که یک activity برای کاربران قابل مشاهده میشود استفاده می گردد.
3
onResume()
این متد زمانی فراخوانی میشود که کاربر تعامل با نرم افزار را شروع می کند.
4
onPause()
اکتیویتیpaused نمی تواند از کاربران ورودی دریافت کند و هیچ کدی را هم پردازش نمی کند و زمانی فراخوانی میشود که اکتیویتی کنونی متوقف و اکتیویتی بعدی ادامه پیدا می کند.
5
onStop()
این متد زمانی فراخوانی میشود که اکتیویتی مد نظر دیگر در دسترس نباشد.
6
onDestroy()
این متد فراخوانی درست قبل از اینکه اکتیویتی توسط سیستم از بین برود اجرا میشود.
7
onRestart()
این متد فراخوانی زمانی اجرا میشود که اکتیویتی بعد از توقف دوباره اجرا شود

 

مثال:

در این مثال با چرخه حیات یک اکتیویتی در نرم افزار اندروید آشنا میشوید. با دنبال کردن این مثال در نرم افزار سلام دنیا تغییراتی را اعمال کنید.

گام
توضیحات
1
شما از نرم افزار اندروید استودیو استفاده می کنید و یک نرم افزار اندرویدی به نام سلام دنیا در com.example.helloworld درست مانند آنچه قبلا گفته شد ایجاد می کنید.
2
فایل main activity را تغییر دهید . فایل MainActivity.java را مانند توضیحات تغییر دهید و سایر قسمت های این فایل را دست نخورده بگذارید.
3
نرم افزار را اجرا کنید و در شبیه ساز اندروید درستی اجرای تغییرات اعمال شده را چک کنید.

 

در زیر محتوای تغییر یافته فایل src/com.example.helloworld/MainActivity.java.  قرار دارد. این فایل تمام ساختار های مدت طول عمر یا  life cycle را در بر دارد. متد 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");

   }

}

یک کلاس activity تمام کامپوننت های رابط کاربری را بارگزاری خواهد کرد و برای اینکار کلاس activity از فایل XML file که در پوشه res/layout در دسترس است استفاده می کند.

 جملات پایین کامپوننت رابط کاربری در فایل res/layout/activity_main.xml را بارگزاری خواهند کرد.

setContentView(R.layout.activity_main);

یک نرم افزار میتواند یک یا چند اکتیویتی را بدون هیچگونه محدودیت در بر داشته باشد. هر activity که شما برای نرم افزار خود تعریف می کنید باید در فایل AndroidManifest.xml تعریف کرده باشید. فایل و main activity برای نرم افزار شما باید در فایل  manifest توسط تگ <intent-filter>  تعریف شود و دارای MAIN action و دسته بندی LAUNCHER باشد به مثال زیر توجه کنید:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.tutorialspoint7.myapplication">

 

    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

               <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

 

</manifest>

اگر در هر یک از MAIN action ها یا دسته بندی های LAUNCHER برای یکی از اکتیویتی های شما تعریفی وجود نداشته باشد، ایکون نرم افزار شما در لیست آیکون های نرم افزار در صفحه خانه موبایل به نمایش در نخواهد آمد.

حالا میخواهیم نسخه تغییر یافته نرم افزار سلام دنیا را اجرا کنیم . فرض ما این است که شما AVD را در هنگام نصب نرم افزار نصب نموده اید، تا به محیط شبیه سازی دسترسی داشته باشید. برای اجرای نرم افزار در اندروید استودیو یکی از فایل های activity پروژه خود را باز کرده و روی ایکون Run در نوار ابزار کلیک کنید. اندروید استودیو نرم افزار شما را روی AVD نصب می کند. و اگر همه مراحل نصب درست پیش رود یک پنجره شبیه سازی برای شما باز خواهد شد و شما باید پیام های زیر را در پنجره LogCat اندروید استودیو مشاهده کنید:

08-23 10:32: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

 

آموزش آندروید

 

روی دکمه قفل در پایین پنجره شبیه ساز کلیک کنید اینکار باعث میشد که کد های زیر برای شما در پنجره LogCat به نمایش در بیایید:

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

حالا پنجره را از حالت قفل خارج می کنیم تا در شبیه ساز، رخداد های زیر در پنجره LogCat به نمایش در بیاید:

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

در گام بعد روی دکمه Back که مانند یک فلش منحنی رو به عقب است کلیک می کنیم. و ما پیام های زیر را در پنجره رخداد ها یا همان پنجره LogCat  میبینیم و این زنجیره کامل حیات یک نرم افزار اندرویدی است .

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 onDestroy() event

 

آموزش برنامه نویسی اندروید بصورت کاملا حرفه ای و رایگان توسط شرکت برنامه نویس سارگون ارائه گردیده است . برای تولید نرم افزار های تخصصی اندروید با ما در تماس باشید.

نظرات كاربران :