با یک سری دیگه از آموزشهای قدم به قدم با مونو در خدمت شما هستم در آموزش قبلی با یکی از مفاهیم مهم در برنامه های اندروید به نام Intent ها آشنا شدیم قصد داریم در این آموزش هم به یکی دیگه از مباحث مهم اندروید بنام Activities آشنا بشیم.
Activities در زامارین

مفهوم Activities در اندروید

فعالیت ها (activities) یکی از ساختارهای اصلی برنامه اندروید هستند. اگه بخوام خیلی ساده بگم، یه فعالیت همون صفحه ی ساده از برنامه‌ی شماست. پس خیلی مهمه که مبانی فعالیت‌ها رو خوب یاد بگیرید. برنامه های اندروید می توانند شامل چند activities باشند . بطور معمول هر برنامه اندروید دارای یک فعالیت اصلی یا MainLauncher است که در صورت مشخص کردن آن برای فعالیت مورد نظر پس از اجرا برنامه شما این فعالیت بعنوان اولین فعالیت برنامه شما شروع به کار خواهد کرد که بصورت پیشفرض در برنامه های مونو این فعالیت بنام  MainActivity  شناخته می شود و شما در صورت نیاز می توانید آن را تغییر دهید. فعالیت ها در زامارین اندروید از نوع کلاسی هستد که از کلاس Activity ارث بری کرده اند و دارای صفت Activity در بالای کلاس آن است.
برای هر فعالیت چندین صفت وجود دارد که شما بنا بر نیاز خود می توانید آنها را مقدار دهی نمایید مثال زیر یک نمونه از فعالیت ایجاد شده است که دارای دو صفت Label و MainLauncher است صفت Label همون خاصیت Text برای فرم ها در برنامه های ویندوز فرم دات نت است و MainLauncher که در موردش صحبت کردیم که در فعالیت مقدار دهی شده پس این فعالیت بعنوان اولین فعالیتی است که پس از اجرای برنامه شروع به فعالت می کند.

[Activity(Label = "ActivitySamples", MainLauncher = true,Icon = "@drawable/icon")]

    public class MainActivity : Activity

چرخه زندگی Activity

در زیر لیستی از وضعیت های که یک فعالیت بخود می گیرد نشان داده شده است

  • OnCreate
  • OnStart
  • OnResume
  • OnPause
  • OnStop
  • OnRestart
  • OnDestroy

قبل از اینگه به جزئیات این وضعیت ها بپردازیم ببینیم برای یک فعالیت از شروع زندگی تا مرگ چه اتفاقی رخ می دهد.چرخه زندگی یک فعالیت که تصویر زیر گویای این اتفاقات است .

Activities در زامارین

OnCreate

این اولین تابعی است که پس از ایجاد یک فعالیت برای اولین بار فراخوانی می شود. اقداماتی نظیر ایجاد View , Viewgroup و مقدار دهی های اولیه در این تابع انجام  می شود .

OnStart

این تابع هم پس از OnCreate بطور کلی برای بروز کردن هرگونه اطلاعات View , Viewgroup استفاده می شود.

OnResume

این تابع هر زمانی یک فعالیت قابل مشاهده شود اجرا خواهد شد . این همون زمانی است که کاربر برای استفاده از رابطه کاربری آماده می شود. نکته مهم دیگری که برای OnResume وجود دارد این است که مسئول برگردانند به حالت اولیه هر چیزی که در زمان OnPause متوقف شده است خواهد بود

OnPause

این تابع زمانی فراخوانی می شود که فعالیت به حالت پس ضمینه با background برود . بطور کلی در قبل از اجرای این متد باید داده های مورد نیاز خود را ذخیره نمایید تا از بین نروند و این اطلاعات اطلاعاتی غیر از اطلاعات رابطه کاربری است.

OnStop

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

OnRestart

این تابع زمانی فراخوانی می شود که یک فعالیت پس از متوقف شدن دوباره شروع به فعالیت می کند

OnDestroy

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

using Android.App;
using Android.OS;
using Android.Widget;

namespace ActivitySamples
{
    [Activity(Label = "ActivitySamples", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        int count = 1;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            نحوه اتصال یک لایه به یک فعالیت
            SetContentView(Resource.Layout.Main);

             نحوه یافتن عناصر در لایه طراحی
            Button button = FindViewById<button>(Resource.Id.MyButton);

    button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
    }

    protected override void OnStart()
    {
        base.OnStart();
    }

    protected override void OnResume()
    {
        base.OnResume();
    }

    protected override void OnPause()
    {
        base.OnPause();
    }

    protected override void OnStop()
    {
        base.OnStop();
    }

    protected override void OnRestart()
    {
        base.OnRestart();
    }

    protected override void OnDestroy()
    {
        base.OnDestroy();
    }

    }
 }

به پایان یکی دیگه از اموزشها رسیدیم امیدوارم مفید بوده باشد در صورتی که نیاز به اطلاعات بیشتر در مورد فعالیت ها داشتید به اینجا سر بزنید

25 پست
محمدزاده
سابقه 10 ساله برنامه نویسی مایکروسافت شامل C# , WPF , ASP.Net , Asp.Net Mvc و چند سال اندروید کار کردم تا اینکه زامارین دست به کار شد الان 3 ساله برنامه های اندرویدم رو با ویژوال استادیو مینویسم و لذت میبرم و دوست دارم این لذت رو با دیگران شریک باشم
برچسب ها: , , , , , , , , , , , , , , , , , , , , , , , , , ,
مطالب مرتبط
مطالب نویسنده
دیدگاه کاربران

برای نوشتن دیدگاه میتوانید به حساب کاربری خود وارد شوید ورود ارسال نظر بصورت مهمان
ارسال نظر (مهمان):