مشخصات مقاله
-
3076
-
0.0
-
11202
-
0
-
0
آموزش Activity در اندروید
فعالیت های اندروید
ک فعالیت نشان دهنده ی یک صفحه نمایش همراه با یک واسط کاربری است. برای مثال، یک اپلیکیشن ایمیل می تواند دارای یک فعالیت باشد که لیستی از ایمیل های جدید را نمایش می دهد، یک فعالیت دیگر برای نوشتن یک ایمیل و یک فعالیت دیگر که برای خواندن ایمیل ها به کار می رود. در صورتی که یک اپلیکیشن بیش از یک فعالیت داشته باشد، آنگاه یکی از آنها باید به عنوان فعالیتی که در زمان راه اندازی برنامه نمایش داده می شود، انتخاب شود.
در صورتی که شما با زبان های برنامه نویسی C، C++ یا جاوا کار کرده باشید، دیده اید که برنامه شما با تابع main() شروع می شود. به صورت مشابه سیستم اندرویدی هم برنامه خود را با یک فعالیت (Activity) که با فراخوانی onCreate() اجرا می شود، شروع می کند. همانطور که در نمودار چرخه عمر فعالیت زیر نشان داده شده است مجموعه ای از متدهای callback وجود دارند که یک فعالیت را شروع می کنند و مجموعه ای از متدهای callback وجود دارند که یک فعالیت را قطع می کنند. (منبع عکس: android.com ).
کلاس Activity، متدهای callback زیر، یعنی رویدادها را تعریف می کند. شما نیاز ندارید که همه متد های callback را پیاده سازی و اجرا کنید. با این حال، مهم است که شما هر کدام از آنها را بفهمید و در بین آنها، از مواردی که رفتارهای مورد انتظار کاربران اپلیکیشن شما را تامین می کنند، استفاده کنید.
مثال:
این مثال از طریق گام هایی ساده، چرخه حیات فعالیت های یک اپلیکیشن اندرویدی را به شما نشان میدهد. مراحل زیر را برای تغییر اپلیکیش اندرویدی ای که ما در فصل Hello World Example ایجاد کردیم، دنبال کنید
در ادامه محتوای تغییر یافته ی فایل فعالیت اصلی src/com.example.helloworld/MainActivity.java نشان داده شده است. این فایل شامل تمام متدهای چرخه حیات اصلی است. متد 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");
}
}
یک کلاس فعالیت، همه ی مولفه های واسط کاربری را با استفاده از فایل XML موجود در پوشه res/layout از پروژه بارگذاری می کند. دستور زیر مولفه های واسط کاربری را از فایل res/layout/activity_main.xml بارگذاری می کند.
setContentView(R.layout.activity_main);
یک اپلیکیشن، بدون داشتن هیچ محدودیتی می تواند یک یا چندین فعالیت داشته باشد. هر فعالیتی که شما برای برنامه خود تعریف می کنید، باید در فایل AndroidManifest.xml شما اعلام شود و فعالیت اصلی اپلیکیشن شما باید با یک تگ در مانیفست مشخص شود که شامل عمل اصلی MAIN action و طبقه بندی راه انداز (LAUNCHER category) به صورت زیر است.
در صورتی که هر کدام از موارد MAIN action یا LAUNCHER category برای فعالیت های شما مشخص نشود، آنگاه آیکن مربوط به اپلیکیشن شما، در لیست اپلیکیشن ها در صفحه Home، ظاهر نمی شود.
اکنون می خواهیم که اپلیکیشن تغییر یافته ی Hello World! را، که در این قسمت آن را تغییر دادیم، اجرا کنیم. من فرض میکنم که شما در طول عملیات نصب محیط، AVD خود را ایجاد کرده باشید. برای اجرای اپلیکیشن از Eclipse، یکی از فایل های فعالیت پروژه خود را باز کنید و بر روی آیکن Run از نوار ابزار کلیک کنید. Eclipse، اپلیکیشن را بر روی AVD شما نصب می کند و در صورتی که همه چیز در مورد نصب و اپلیکیشن شما درست باشد، پنجره امولاتور (Emulator) را نمایش میدهد، و شما باید پیام های log (پیام های ثبت وقایع) زیر را در پنجره LogCat در Eclipse IDE ببینید.
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
در صورتی که بر روی دکمه Red بر روی امولاتور اندروید کلیک کنید، پیام های مربوط به رویدادهای زیر در پنجره LogCat در Eclipse IDE نمایش داده می شود.
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
در صورتی که بار دیگر بر روی دکمه Menu، بر روی امولاتور اندروید کلیک کنید، پیام های مربوط به رویدادهای زیر در پنجره LogCat در Eclipse IDE نمایش داده می شود.
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
پس از آن، اگر بر روی دکمه در امولاتور اندروید کلیک کنید، پیام های مربوط به رویدادهای زیر در پنجره LogCat در Eclipse IDE نمایش داده می شود و این کار چرخه حیات فعالیت را برای یک اپلیکیشن اندرویدی تکمیل می کند.
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