با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. ابتدا به موضوع اکتیویتی در اندروید چیست می پردازیم ، اگر شما با زبان برنامه نویسی C++ ، C و یا Java مشغول به کار بوده اید، باید دیده باشید که کد اصلی برنامه شما از تابع ()main شروع می شود. متدی بسیار مشابه ()main در سیستم آندروید برنامه خود را در یک Activity آغاز می کند و برنامه با شروع فراخوانی متد ()onCreate آغاز می شود. یک دنباله از متدهای فراخوانی وجود دارد که Activity را شروع می کنند و یک دنباله از متدهای فراخوانی که Activity را از بین می برند نیز وجود دارد، برای درک بهتر این مباحث باید با چگونگی کار با Activity در اندروید آشنا شوید.
برای درک بهتر چگونگی کار با Activity در اندروید ابتدا به نمودار چرخه ی فرآیند Activity توجه کنید:
کلاس Activity رویدادهای call back زیر را تعریف می کند.
شما نیازی به پیاده سازی همه متد های زیر ندارید اما بهتر است که یک درک و شناخت کلی از این موراد داشته باشید:
ردیف | Callback & توضیحات |
---|---|
۱ | onCreate() این اولین تماس برنامه است و هنگام فعالیت ابتدا این ایجاد می شود. |
۲ | onStart() این متد زمانی فراخوانی می شود که فعالیت برای کاربر قابل مشاهده است. |
۳ | onResume() این زمانی فراخوانی می شود که کاربر شروع به تعامل با برنامه می کند. |
۴ | onPause() هنگامی که فعالیت فعلی متوقف شده و فعالیت قبلی از بین می رود، فراخوانی می شود.
|
۵ | onStop() این فراخوان زمانی فرا می رسد که فعالیت دیگر قابل مشاهده نیست. |
۶ | onDestroy() این متد قبل از فعالیت توسط سیستم تخریب می شود. |
۷ | onRestart() این متد زمانی فراخوانی می شود که فعالیت پس از متوقف شدن آن دوباره شروع می شود. |
این مثال ساده چرخه ی فرآیند Activity را در اندروید نشان می دهد که با تغییر برنامه Hello World همراه است:
ردیف | توضیحات |
---|---|
۱ | یک برنامه ی جدید در اندروید استدیو با عنوان HelloWorld ایجاد کرده و در پکیج com.example.helloworld قرار دهید. |
۲ | فایل اصلی MainActivity.java را تغییر داده و مابقی فایل ها را بدون تغییر بگذارید. |
۳ | در نهایت برنامه را Run کرده و نتیجه ی تغییرات انجام شده در برنامه را تایید کنید. |
کد زیر حاوی محتوای فایل تغییر یافته ی main activity در src/com.example.helloworld/MainActivity.java. است.
این فایل شامل متدهای ضروری از جمله () Log.d که برای ایجاد پیام های ورودی استفاده می شود است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 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 تمام کامپوننت UI را با استفاده از فایل XML موجود در پوشه Res / layout پروژه بارگیری می کند.
دستور زیر کامپوننت های UI را از فایل res / layout / activity_main.xml بارگذاری می کند:
1 | setContentView(R.layout.activity_main); |
یک برنامه می تواند یک یا چند activity را بدون محدودیت داشته باشد.
هر activity که برای برنامه تعریف می کنید باید در فایل AndroidManifest.xml شما اعلام شود.
main activity برنامه شما باید در مانیفست با <intent-filter> اعلام شود که شامل عمل MAIN و LAUNCHER به شرح زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?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 برای هر یک از activity برنامه شما اعلام نشده باشد، نماد برنامه شما در فهرست برنامه های صفحه اصلی ظاهر نخواهد شد.
حالا برای اجرای برنامه ی اندروید یکی از activity های برنامه ی خود را باز کنید.
سپس روی نماد (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.
اندروید استدیو این برنامه را در AVD خود نصب کرده و آن را اجرا می کند.
اگر مشکلی در اجرای برنامه نباشد،شما باید پیام های ورودی زیر را در LogCat در استودیوی Android ببینید:
1 2 3 | 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 |
در ادامه رو ی دکمه ی lock شبیه ساز اندروید در کلیک می کنیم سپس پیام های زیر در LogCat ایجاد می شود:
1 2 | 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 ایجاد می شود:
1 2 | 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 کلیک می کنیم و دکمه Back Button را در شبیه ساز اندروید قرار می دهیم.
این مرحله Cycle Activity Life را برای یک برنامه Android تکمیل می کند:
1 2 3 | 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 |
هر یک از فعالیت هایی که در برنامه های اندروید تعریف می کنید شامل یک سیکل چرخشی از رویدادهای ایجاد ، توقف ها، و از بین رفتن است، از این رو برای درک این چرخه و چگونگی کار با Activity در اندروید مباحث این بخش را ارائه دادیم.
در بخش بعدی سرویس های اندروید را بررسی می کنیم.