آموزش برنامه نویسی برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود

این بخش به اینکه چگونه یک اکتیویتی اجرا می شود، توجه می کند. برای ایجاد یک اکتیویتی، یک کلاس جاوا که از کلاس پایه ارث بری می کند، ایجاد کنید:
چهارشنبه، 10 تير 1394
تخمین زمان مطالعه:
موارد بیشتر برای شما
آموزش برنامه نویسی برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود

 

مترجم: حبیب الله علیخانی
منبع:راسخون




 
این بخش به اینکه چگونه یک اکتیویتی اجرا می شود، توجه می کند. برای ایجاد یک اکتیویتی، یک کلاس جاوا که از کلاس پایه ارث بری می کند، ایجاد کنید:
package net.rasekhoon.raeesiyan;
import android.app.Activity;
import android.os.Bundle;
public class Activity101Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
این کلاس اکتیویتی کامپوننت UI خودش را با استفاده از فایل XML لود می کند که این فایل XML در دایرکتوری res/layout تعریف شده است. در این مثال، شما باید UI را از فایل main.xml لود کنید:
setContentView(R.layout.main);
هر اکتیویتی که شما در اپلیکیشن خودتان دارید باید در فایل AndroidManifest.xml تعریف شود، مانند زیر:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.rasekhoon.raeesiyan"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".Activity101Activity"
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>
</manifest>
کلاس پایه ی Activity یک سری رویداد را تعریف می کند که چرخه ی حیات (Life cycle) یک اکتیویتی را کنترل می کند. کلاس Activity رویداد های زیر را تعریف می کند:
onCreate(): زمانیکه یک اکتیویتی اولین بار ایجاد می شود، فراخوانی می شود.
onStart():زمانیکه زمانیکه یک اکتیویتی برای کاربر قابل مشاهده می شود، فراخوانی می شود.
onResume():زمانیکه یک اکتیویتی با کاربر شروع به تعامل می کند، فراخوانی می شود.
onPause():زمانیکه اکتیویتی جاری pause(به صورت موقتی متوقف) شده و اکتیویتی قبلی resume (از سرگیری) می شود، فراخوانی می شود.
onStop(): زمانیکه اکتیویتی دیگر برای کاربرقابل مشاهده نیست، فراخوانی نمی شود.
onDestroy(): قبل از اینکه یک اکتیویتی توسط سیستم نابود می شود، فراخوانی می شود(چه به صورت دستی و چه برای آزادسازی حافظه).
onRestart(): زمانیکه اکتیویتی متوقف می شود و دوباره راه اندازی می شود، فراخوانی می شود.
به طور پیشفرض، اکتیویتی ای که برای شما ایجاد می شود، شامل رویداد onCreate() می شود.
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
بهترین روش برای یادگیری مراحل مختلف اکتیویتی این است که یک پروژه ایجاد کنید و رویدادهای مختلفی را پیاده سازی(implement) کنید، و سپس در معرض تعامل مختلف کاربر قرار دهید.

درک چرخه ی حیات(Activity) اکتیویتی

1- یک پروژه ی اندرویدی در ایکلیپس به نام Activity101 ایجاد کنید.
2- در فایل Activity101Activity.java دستورات زیر را وارد کنید:
1 package net.rasekhoon.raeesiyan;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.util.Log;
6
7
8 public class Activity101Activity extends Activity {
9
10 String tag = "Lifecycl";
11
12
13 /** Called when the activity is first created. */
14 @Override
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.main);
18 Log.d(tag, "In the onCreate() event");
19 }
20
21
22 @Override
23 public void onStart()
24 {
25 super.onStart();
26 Log.d(tag, "In the onStart() event");
27 }
28
29
30 @Override
31 public void onRestart()
32 {
33 super.onRestart();
34 Log.d(tag, "In the onRestart() event");
35 }
36
37
38 @Override
39 public void onResume()
40 {
41 super.onResume();
42 Log.d(tag, "In the onResume() event");
43 }
44
45
46 @Override
47 public void onPause()
48 {
49 super.onPause();
50 Log.d(tag, "In the onPause() event");
51 }
52
53
54 @Override
55 public void onStop()
56 {
57 super.onStop();
58 Log.d(tag, "In the onStop() event");
59 }
60
61
62 @Override
63 public void onDestroy()
64 {
65 super.onDestroy();
66 Log.d(tag, "In the onDestroy() event");
67 }
68 }
3- آنرا در شبیه ساز اندروید اجرا کنید.
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
4- زمانیکه اکتیویتی اولین بار اجرا می شود، باید یک سری چیزها مانند زیر در پنجره ی LigCat خواهید دید. اگر این پنجره فعال نبود، این پنجره را از طریق زیر فعال کنید:
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
مطالب زیر را می بینید:
11-16 06:25:59.396: D/Lifecycle(559): In the onCreate() event
11-16 06:25:59.396: D/Lifecycle(559): In the onStart() event
11-16 06:25:59.396: D/Lifecycle(559): In the onResume() event
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
5- اگر دکمه ی back را در شبیه ساز اندروید را کلیک کنیم، مطلب زیر چاپ می شود:
6-
11-16 06:29:26.665: D/Lifecycle(559): In the onPause() event
11-16 06:29:28.465: D/Lifecycle(559): In the onStop() event
11-16 06:29:28.465: D/Lifecycle(559): In the onDestroy() event
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
7- دکمه ی Home را کلیک کنید و آن را نگه دارید و سپس آیکن Activities را کلیک کنید و آنرا اجرا کنید:
و مطالب زیر را می بینید:
11-16 06:31:08.905: D/Lifecycle(559): In the onCreate() event
11-16 06:31:08.905: D/Lifecycle(559): In the onStart() event
11-16 06:31:08.925: D/Lifecycle(559): In the onResume() event
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
8- دکمه ی Phone (شماره گیر تلفن) را در شبیه ساز اندروید کلیک کنید، به همین علت اکتیویتی به background قرار می گیرد. سپس خروجی را در پنجره ی LogCat می بینید:
11-16 06:32:00.585: D/Lifecycle(559): In the onPause() event
11-16 06:32:05.015: D/Lifecycle(559): In the onStop() event
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
9- توجه کنید که رویداد onDestroy() فراخوانی نشده، نشان می دهد که اکتیویتی هنوز در حافظه وجود دارد. با کلیک کردن دکمه ی بازگشت(Back) از شماره گیر تلفن خارج شوید. اکنون اکتیویتی دوباره قابل رویت می شود. خروجی را در پنجره ی LogCat می بینید:
11-16 06:32:50.515: D/Lifecycle(559): In the onRestart() event
11-16 06:32:50.515: D/Lifecycle(559): In the onStart() event
11-16 06:32:50.515: D/Lifecycle(559): In the onResume() event
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
رویداد onRestart() خارج شد و توسط متد های onStart() و onResume() دنبال شد.
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
چگونه کار می کند:
زمانیکه یک اکتیویتی شروع شود، متدهای onStart() و onResume() همیشه فراخوانی می شود. صرف نظر از اینکه اکتیویتی از پس زمینه باز گشت یا به تازگی ایجاد شد. هنگامیکه یک فعالیت برای بار اول ایجاد می شود، متد onCreate() فراخوانی می شود.
از مثال قبلی، شما می توانید دستورالعمل های زیر را استخراج کنید:
از متد onCreate() می توانید برای ایجاد یا نمونه سازی اشیائی که در اپلیکیشن تان بکارمی برید، استفاده کنید.
از متد onResume()هنگامیکه اکتیویتی تان در پس زمینه است، برای شروع هر گونه سرویس یا کدی که نیاز به اجرا دارد استفاده می شود.
از متد onpause()هنگامیکه اکتیویتی تان در پس زمینه است، برای توقف هر گونه سرویس یا کدی که نیاز به اجرا دارد استفاده می شود.
از متد onDestroy() برای آزاد سازی منابع قبل از اینکه اکتیویتی تان از بین رود، استفاده می شود.
توجه: اگر یک اپلیکیشن فقط یک اکتیویتی داشته باشد و آن اکتیویتی کشته شود، اپلیکیشن هنوز در حافظه در حال اجرا است.

استفاده از styleها(سبک) و تم ها برای اکتیویتی

به طور پیشفرض، یک اکتیویتی کل صفحه نمایش را اشغال می کند، با این حال، شما می توانید یک تم محاوره برای اپلیکیشن بکار ببرید بطوریکه به عنوان محاوره ی شناور نمایش داده می شود.
برای مثال زمانیکه شما بخواهید به منظور سفارشی کردن اپلیکیشن تان برای نمایش pop-up، برای هشدار کاربران در مورد برخی از اقداماتی که آنها می خواهند انجام دهند. در این مورد، نمایش اکتیویتی به عنوان محاوره بهترین روش برای جلب توجه آنها است. برای بکاربردن تم محاوره ای در یک اپلیکیشن، به سادگی می توان با اضافه کردن صفت android: theme در فایل AndroidManifest.xml عنصر <Activity> را می توان تغییر دهید:
android:theme=”@android:style/Theme.Dialog”>
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
اجرای آن به صورت زیر است:
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود

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

شما می توانید به صورت دلخواه عنوان یک اکتیویتی را پنهان کنید(مانند زمانی که شما فقط می خواهید وضعیت آپدیت را به کاربر نمایش دهید).
برای این کار از متد requestWindowFeature() استفاده کنید و به آن ثابت Window.FEATURE_NO_TITLE را پاس دهید. و کدهای زیر را اضافه کنید. مانند زیر:
import android.view.Window;
requestWindowFeature(Window.FEATURE_NO_TITLE);
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
خروجی آن به شکل زیر می باشد:
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
آموزش  برنامه نویسی  برای اندروید با ایکلیپس(23)- چگونه یک اکتیویتی اجرا می شود
استفاده از مطالب این مقاله با ذکر منبع راسخون بلامانع است.



 

 



نظرات کاربران
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.