آموزش Activity در اندروید به زبان ساده

Activity یک صفحه نمایش منفرد با رابط کاربری مانند window یا frame جاواست. Activity اندروید زیر کلاسی از کلاس ContextThemeWrapper است.

اگر با زبان برنامه نویسی C ، C++ یا Java کار کرده اید ، میدانید که برنامه از تابع main() شروع می شود. با استفاده از متد بازگشتی onCreate()، سیستم اندرویدی برنامه خود را با یک Activity شروع می کند. دنباله ای از متد های callback وجود دارد که یک Activity را شروع می کنند و دنباله ای از متد های callback یک Activity را تجزیه می کنند ، همانطور که در نمودار زیر چرخه Activity نشان داده شده است:

کلاس Activity ، فراخوانی های زیر را مانند رویداد تعریف می کند. نیازی به اجرای همه متد های callback نیست. با این حال مهم است که هرکدام را درک کرده و مواردی را اجرا کنید که اطمینان حاصل کنید برنامه شما همانطور که کاربران انتظار دارند، رفتار کند.

شمارهتوضیح
۱()onCreateاولین متد callback است و هنگامی که Activity برای اولین بار ایجاد می شود ، فراخوانی می شود.
۲()onStartهنگامی که Activity برای کاربر قابل مشاهده است ، این متد فراخوانی می شود.
۳()onResumeهنگامی که کاربر تعامل با برنامه را شروع کند ، این متد فراخوانی می شود.
۴()onPauseActivity متوقف شده ورودی کاربر را دریافت نمی کند و نمی تواند هیچ کدی را اجرا کند و وقتی Activity فعلی متوقف شود و Activity قبلی از سر گرفته می شود ، فراخوانی می شود.
۵()onStopهنگامی که Activity دیگر قابل مشاهده نیست ، این متد فراخوانی می شود.
۶()onDestroyاین متد قبل از از بین رفتن Activity توسط سیستم، فراخوانی می شود.
۷()onRestartهنگامی که Activity پس از متوقف شدن شروع شود ، این متد فراخوانی می شود.

مثال

این مثال شما را با قدم های ساده برای نشان دادن چرخه عمر Activity برنامه های کاربردی اندروید آشنا می کند. برای تغییر برنامه اندروید که در بخش مثال Hello World ایجاد کردیم ، مراحل زیر را دنبال کنید –

مرحلهتوضیحات
۱می توانید از Android studio برای ایجاد برنامه اندروید استفاده کنید و آن را Hello.orld تحت پکیج com.example.helloworld همانطور که در بخش مثال Hello World توضیح داده شده است ، نامگذاری کنید.
۲فایل اصلی MainActivity.java را مطابق شکل زیر اصلاح کنید. بقیه فایل ها را بدون تغییر نگه دارید.
۳برنامه را اجرا کنید تا شبیه ساز اندروید راه اندازی شود و نتیجه تغییرات انجام شده در برنامه را تأیید کند.

در زیر محتوای تغییر یافته فایل src / com.example.helloworld / MainActivity.java را می بینید. این فایل شامل هر یک از متد های اساسی چرخه Activity است. از متد Log.d() برای تولید پیام های log استفاده شده است 

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 با استفاده از فایل XML موجود در فایل res/layout ، تمام مؤلفه UI را بارگذاری می کند. عبارت زیر اجزای UI را از فایل res / layout / activ_main.xml بارگذاری می کند:

setContentView(R.layout.activity_main);


یک برنامه می تواند بدون هیچ محدودیتی یک یا چند Activity داشته باشد. هر Activity که برای برنامه تعریف کرده اید باید در فایل AndroidManifest.xml اعلام شود و همچنین activity اصلی برنامه باید در manifest با <intent-filter> اعلام شود که شامل عملکرد MAIN و دسته 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 یا دسته LAUNCHER برای یکی از activity های شما اعلام نشده باشد ، نماد برنامه شما در لیست برنامه های صفحه اصلی ظاهر نمی شود.

برنامه Hello World ویرایش شده را اجرا کنید. فرض می کنیم هنگام انجام تنظیمات محیطی ، AVD را ایجاد کرده اید. برای اجرای برنامه از studio Android ، یکی از فایل های Activity پروژه خود را باز کرده و از نوار ابزار ، روی گزینه Run Eclipse Run Icon کلیک کنید. studio Android برنامه را در AVD شما نصب کرده و آن را راه اندازی می کند و اگر همه چیز درست باشد ، پنجره Emulator را نشان می دهد و باید پیام های وارد شده زیر را در پنجره LogCat در studio Android مشاهده کنید

۰۸-۲۳ ۱۰:۳۲:۰۷٫۶۸۲ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onCreate() event

۰۸-۲۳ ۱۰:۳۲:۰۷٫۶۸۳ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onStart() event

۰۸-۲۳ ۱۰:۳۲:۰۷٫۶۸۵ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onResume() event

اگر روی دکمه قفل صفحه روی شبیه ساز اندروید کلیک کنید، پیام های زیر را در پنجره LogCat در Android studio مشاهده می کنید:

۰۸-۲۳ ۱۰:۳۲:۵۳٫۲۳۰ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onPause() event

۰۸-۲۳ ۱۰:۳۲:۵۳٫۲۹۴ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onStop() event

صفحه نمایش را در شبیه ساز اندروید باز کنید و پیام های مربوط به رویدادهای زیر را در پنجره LogCat در studio Android مشاهده کنید:

۰۸-۲۳ ۱۰:۳۴:۴۱٫۳۹۰ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onStart() event

۰۸-۲۳ ۱۰:۳۴:۴۱٫۳۹۲ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onResume() event

در مرحله بعد ، دوباره روی دکمه بازگشت اندروید در شبیه ساز اندروید کلیک کنید و پیام های مربوط به رویدادهای زیر را در پنجره LogCat در Android studio مشاهده کنید و این چرخه زندگی Activity را برای یک برنامه اندروید کامل می کند.

۰۸-۲۳ ۱۰:۳۷:۲۴٫۸۰۶ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onPause() event

۰۸-۲۳ ۱۰:۳۷:۲۵٫۶۶۸ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onStop() event

۰۸-۲۳ ۱۰:۳۷:۲۵٫۶۶۹ ۴۴۸۰-۴۴۸۰/com.example.helloworld D/Android :: The onDestroy() event

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.