آموزش برنامه نویسی اندروید (Android)
دسته بندی ( ۴۸۲ آموزش )
نمایش دسته بندی ها (۴۸۲ آموزش)
مباحث اولیه، در برنامه نویسی اندروید
مباحث اولیه، در برنامه نویسی اندروید 28
کار با Activity ها ، در برنامه نویسی اندروید
کار با Activity ها ، در برنامه نویسی اندروید 21
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید 11
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید 11
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید 10
کار با برنامه Android Studio ، در برنامه نویسی اندروید
کار با برنامه Android Studio ، در برنامه نویسی اندروید 9
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید 3
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید 9
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید 23
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید 38
ساخت دکمه (Button) ، در برنامه نویسی اندروید
ساخت دکمه (Button) ، در برنامه نویسی اندروید 7
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید 12
ساخت EditText، در برنامه نویسی اندروید
ساخت EditText، در برنامه نویسی اندروید 6
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید 13
طراحی متریال (Material Design)، در برنامه نویسی اندروید
طراحی متریال (Material Design)، در برنامه نویسی اندروید 3
پخش موسیقی، در برنامه نویسی اندروید
پخش موسیقی، در برنامه نویسی اندروید 5
نمایش انیمیشن، در برنامه نویسی اندروید
نمایش انیمیشن، در برنامه نویسی اندروید 3
تغییر ویژگی های کلی برنامه اندروید
تغییر ویژگی های کلی برنامه اندروید 3
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید 2
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید 10
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید 21
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید 8
حلقه ها (for و while و ...)، در برنامه نویسی اندروید
حلقه ها (for و while و ...)، در برنامه نویسی اندروید 2
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید 11
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید 10
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید 4
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید 5
بازی سازی، در برنامه نویسی اندروید
بازی سازی، در برنامه نویسی اندروید 1
به اشتراک گذاری (share)، در برنامه نویسی اندروید
به اشتراک گذاری (share)، در برنامه نویسی اندروید 5
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید 15
کار با پوشه های raw و assets ، در برنامه نویسی اندروید
کار با پوشه های raw و assets ، در برنامه نویسی اندروید 2
عملیات های ریاضی، در برنامه نویسی اندروید
عملیات های ریاضی، در برنامه نویسی اندروید 13
کار با دوربین (Camera)، در برنامه نویسی اندروید
کار با دوربین (Camera)، در برنامه نویسی اندروید 3
کار با action bar ، در برنامه نویسی اندروید
کار با action bar ، در برنامه نویسی اندروید 4
کار با کلاس ها (class) ، در برنامه نویسی اندروید
کار با کلاس ها (class) ، در برنامه نویسی اندروید 4
کار با package ها ، در برنامه نویسی اندروید
کار با package ها ، در برنامه نویسی اندروید 2
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز)
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز) 2
امنیت، در برنامه نویسی اندروید
امنیت، در برنامه نویسی اندروید 1
Thread ها، در برنامه نویسی اندروید
Thread ها، در برنامه نویسی اندروید 3
سرویس ها (Service)، در برنامه نویسی اندروید
سرویس ها (Service)، در برنامه نویسی اندروید 9
BroadcastReceiver ، در برنامه نویسی اندروید
BroadcastReceiver ، در برنامه نویسی اندروید 0
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید 11
AsyncTask ، در برنامه نویسی اندروید
AsyncTask ، در برنامه نویسی اندروید 2
آرایه ها (Arrays)، در برنامه نویسی اندروید
آرایه ها (Arrays)، در برنامه نویسی اندروید 3
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید 6
رنگ ها (Colors)، در برنامه نویسی اندروید
رنگ ها (Colors)، در برنامه نویسی اندروید 3
Fragment ها و Tab بندی، در برنامه نویسی اندروید
Fragment ها و Tab بندی، در برنامه نویسی اندروید 8
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید 1
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید 3
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید 1
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید 2
پرداخت درون برنامه ای، در برنامه نویسی اندروید
پرداخت درون برنامه ای، در برنامه نویسی اندروید 1
 پروژه های اندروید Open Source کاربران کلیدستان
پروژه های اندروید Open Source کاربران کلیدستان 2
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید 5
مباحث عمومی، در برنامه نویسی اندروید
مباحث عمومی، در برنامه نویسی اندروید 35

وقتی در برنامه اندروید، از یک Activity ، وارد Activity دیگر می شویم، چه اتفاقی برای Activity قبلی می افتد ؟

یکی از اصول اولیه برنامه های اندروید این است که ما از یک Activity به Activity دیگر وارد می شویم و هر بار با یک Activity سر و کار داریم. مثلا در یک Activity ، یک عنصر دکمه (Button) قرار می دهیم که با اشاره کاربر بر روی آن، به یک Activity دیگر وارد شویم. اما در این حالت، چه اتفاقی برای Activity قبلی که دیگر آن را نمی بینیم می افتد ؟ این را می دانیم که در اکثر مواقع (در ادامه متوجه می شوید که چرا نمی گوییم همیشه)، با اشاره بر روی دکمه Back گوشی، به آن Activity قبلی برمی گردیم، اما در ادامه دلیل آن و چگونگی انجام آن را شرح خواهیم داد.

ابتدا بگذارید نگاهی به چرخه یک Activity بیندازیم :

وقتی در برنامه اندروید، از یک Activity ، وارد Activity دیگر می شویم، چه اتفاقی برای Activity قبلی می افتد ؟

ما معمولا کدهای یک Activity را مشابه کدهای زیر می نویسیم (ساده ترین کد برای ساخت یک Activity) :


package com.kelidestan.com;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class NewActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.new_activity);
               
                // your codes
        }

}

همان طور که مشاهده می کنید، در ساده ترین شکل ممکن برای کدهای یک Activity ، تنها روش onCreate را داریم. در واقع با رفتن به یک Activity ، این روش onCreate است که اجرا می شود. بنابراین رابط گرافیکی متناظر با Activity به کاربر نمایش داده می شود و از این به بعد، اینکه چه کدی اجرا شود، بستگی به انتخاب های کاربر دارد. بنابراین کاربر انتخاب هایی مثل گزینه های موجود در خود رابط گرافیکی Activity و همچنین فشار دادن دکمه های گوشی را دارد.

فرض کنیم که در رابط گرافیکی Activity ، یک دکمه باشد که با اشاره کاربر بر روی آن، به یک Activity دیگر وارد شویم، اما برای این Activity چه اتفاقی می افتد ؟

با رفتن به یک Activity جدید، این Activity به حالت توقف موقتی (pause) یا حالت توقف کامل (stop) در می آید.

تفاوت بین دو حالت توقف موقتی (pause) و حالت توقف کامل (stop) :

اگر با شروع Activity جدید، بتوانیم بخشی از Activity قبلی را ببینیم، Activity قبلی در حالت pause قرار گرفته است، اما اگر نتوانیم بخشی از آن را ببینیم، Activity قبلی در حالت stop قرار گرفته است.

تعیین یک سری کد برای اجرا شدن در هنگام وقوع یکی از دو حالت توقف موقتی (pause) و حالت توقف کامل (stop) :

برای هر یک از دو حالت pause یا stop ، روش هایی (methods) در نظر گرفته شده است که با نوشتن کدهای آنها در میان کدهای Activity ، می توانیم تعیین کنیم که با وقوع هر یک از این دو حالت، یک سری کد اجرا شود. به عنوان مثال، برای حالت pause ، یک روش (method) با نام onPause در نظر گرفته شده است، یعنی اینکه با پیش آمدن حالت pause برای Activity ، کدهای موجود در این روش اجرا خواهند شد. روش onPause ، کدهایی مشابه کد زیر خواهد داشت :


@Override
        protected void onPause() {
                // TODO Auto-generated method stub
                super.onPause();
               
                // your codes for pause
        }

و محل قرارگیری آن در میان کل کدهای Activity ، به صورت زیر می باشد :


package com.kelidestan.com;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class NewActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.new_activity);
               
                // your codes
        }

        @Override
        protected void onPause() {
                // TODO Auto-generated method stub
                super.onPause();
               
                // your codes for pause
        }
       
}

اما به کار بردن روش onPause اختیاری است و تنها آن را در صورتی به کار می بریم که بخواهیم هنگام pause شدن Activity ، یک سری کد اجرا شود. بنابراین بر اساس اینکه روش onPause در کدهای Activity نوشته شده باشد یا نه، دو حالت داریم که آنها را در ادامه شرح می دهیم :

حالت اول : روش onPause در Activity نوشته نشده باشد :

چنانچه در کدهای Activity ، روش onPause نوشته نشده باشد، بنابراین Activity به حالت pause می رود، به این صورت که دیگر قابل تعامل برای کاربر نیست و یک Activity در پس زمینه (background activity) می باشد. بنابراین عملیات های آن متوقف می شود تا حافظه (memory) به Activity فعلی (foreground activity) که در حال کار کردن با آن هستیم، اختصاص یابد.

زمانی که دوباره به آن Activity که یک Activity در پس زمینه (background activity) است، برمی گردیم (مثلا با اشاره بر روی دکمه Back گوشی)، عملیات resume برای Activity اجرا خواهد شد (نه عملیات create ، یعنی Activity از ابتدا اجرا نمی شود، بلکه ادامه اجرای کدهای آن را خواهیم داشت). اگر به عکس مربوط به چرخه Activity نگاهی بیندازید، مشاهده می کنید که یک روش هم با نام onResume برای عملیات resume پیش بینی شده است که می توانید کدهای مورد نظر خود را در آن بنویسید، ولی بیشتر به این نکته توجه داشته باشید که resume شدن، باعث اجرای دوباره روش onReume می شود، نه اجرای دوباره روش های onCreate و onStart .

دقت شود که چون روش onResume اجرا می شود، بنابراین باید ببینیم که اصلا کدی برای روش onResume در میان کدهای Activity نوشته شده است یا خیر. اگر کدی وجود داشته باشد، هنگام resume شدن Activity ، اجرا می شوند، اما اگر کدی وجود نداشته باشد، تنها همان حالت قبلی Activity و ادامه اجرای کدهای آن را خواهیم داشت.

حالت دوم : روش onPause در Activity نوشته شده باشد :

ابتدا کدهایی که در روش onPause از کدهای Activity نوشته ایم اجرا خواهد شد، سپس همان عملیات های مربوط به حالت اول که بیان کردیم، اجرا می شود (همان عملیات ها اجرا می شود).

نکته

دو حالتی که برای عملیات pause ذکر کردیم، برای عملیات stop نیز به همین صورت خواهد بود (مشابه هستند)، با این تفاوت که به جای اجرای روش onPause ، اجرای روش onStop را خواهیم داشت و همچنین در صورت بازگشت به Activity ، روش هایی که در شکل زیر با فلش نمایش داده ایم، اجرا خواهند شد :

وقتی در برنامه اندروید، از یک Activity ، وارد Activity دیگر می شویم، چه اتفاقی برای Activity قبلی می افتد ؟

از دست رفتن وضعیت قبلی Activity قرار گرفته در حالت pause و یا حالت stop ، به دلیل کمبود حافظه (memory) گوشی :

گاهی اوقات که گوشی اندروید، از نظر حافظه (memory)، برای اجرای برنامه های با اولویت بالاتر، با مشکل روبرو می شود (حافظه کم می آورد)، آن Activity ای که می خواهد در یکی از دو حالت pause یا stop قرار بگیرد را به طور کامل می بندد (پردازش کل برنامه متوقف می شود)، به گونه ای که با رجوع بعدی کاربر به آن Activity ، از اول اجرا خواهد شد (یعنی شروع با اجرای روش onCreate و ادامه همان روند عادی). بنابراین در این حالت، وضعیت قبلی Activity از دست می رود. این مورد را در شکل زیر (شکل چرخه Activity) با دو علامت در کنار روش های onPause و onStop مشخص کرده ایم :

وقتی در برنامه اندروید، از یک Activity ، وارد Activity دیگر می شویم، چه اتفاقی برای Activity قبلی می افتد ؟

در واقع، پس از اجرای روش onPause یا روش onStop ، اگر گوشی، حافظه را برای برنامه های با اولویت بالاتر نیاز داشته باشد، آن Activity را به طور کامل خواهد بست (پردازش کل برنامه متوقف می شود) و Activity در یکی از آن دو حالت pause یا stop قرار نمی گیرد.

مواردی که خودمان تعیین می کنیم که به آن Activity قبلی بازنگردیم :

گاهی اوقات نیز خودمان تعیین می کنیم که اگر از این Activity به Activity دیگری منتقل شدیم، دیگر کاربر نتواند به این Activity بازگردد. برخی از موارد مربوط به آن را ذکر می کنیم (فرض می کنیم که به حالت pause رفته است و مواردی که گفته می شود، برای حالت stop نیز مشابه است و تنها باید روش های مربوط به حالت stop و نکات آن را در نظر بگیرید) :

* در میان کدهای روش onPause در Activity قبلی، با یک سری کد، تعیین می کنیم که Activity قبلی به طور کامل بسته شود (یعنی destroy شدن Activity).

* در Activity بعدی، یک سری کد می نویسیم که عملکرد دکمه Back گوشی را در آن Activity تغییر بدهد، یعنی با اشاره کاربر بر روی دکمه Back گوشی، دیگر به Activity قبلی باز نمی گردیم، بلکه یک سری کد که خود کاربر تعیین کرده است، اجرا خواهد شد.

نویسنده علیرضا گلمکانی
شماره کلید 2802
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


کلمات کلیدی

راهنمای کلمات کلیدی (کلاس ها، توابع، عناصر و ...) در برنامه نویسی اندروید، بر اساس حرف اول کلمه کلیدی :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

developer.android.com