آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

کد لازم برای خروج از برنامه اندروید، به گونه ای که در اجرای بعدی برنامه به همان آخرین Activity که در آن بودیم وارد شویم (با اشاره بر روی دکمه Back گوشی یا یک دکمه (Button) در لایه گرافیکی برنامه)

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

بخش اصلی کدها به صورت زیر می باشد :


Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

یا اگر بخواهیم که از آخرین Activity خارج شده و به Activity یکی مانده به آخر رفته و سپس از برنامه خارج شویم (که باعث می شود با اجرای دوباره برنامه، به Activity یکی مانده به آخر وارد شویم)، باید کد finish(); را هم در ابتدای آن بنویسیم :


finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

اکنون دو مورد را برای کد بالا شرح می دهیم (در صورت تمایل، کد finish(); را هم به آنها اضافه کنید، آن را به صورت توضیح در کدها قرار داده ایم) :

خروج از برنامه اندروید، هنگام اشاره بر روی دکمه Back گوشی :

همان طور که می دانید، اگر کاربر در activity اصلی، بر روی دکمه back گوشی، اشاره کند، آنگاه از برنامه اندروید خارج خواهد شد، اما ممکن است که بخواهیم در یک activity دیگر، اگر کاربر بر روی دکمه back اشاره کرد، نیز از برنامه اندروید خارج شود.

برای این منظور، درون activity ای که می خواهیم با دکمه back ، از برنامه خارج شود، کدهای زیر را می نویسیم :


@Override
public void onBackPressed() {
    // this.finish();
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}

خروج از برنامه اندروید، هنگام اشاره بر روی یک دکمه (Button) در لایه گرافیکی برنامه اندروید :

فرض کنید که در لایه گرافیکی یک Activity از برنامه اندروید، یک دکمه (Button) داشته باشیم و بخواهیم که با اشاره کاربر بر روی آن، از برنامه اندروید خارج شود. برای این منظور، کدهای زیر را می نویسیم :


Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
                                   
    @Override
    public void onClick(View v) {
        // finish();
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
});

در کد بالا، id مربوط به دکمه (Button) را برابر button1 در نظر گرفته ایم.

نویسنده علیرضا گلمکانی
شماره کلید 244
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 16 16 0
مهدی
۱۳۹۵/۰۶/۲۱
۱۷:۰۹

دمت گرم داداش خیلی کمکم کرد ایولا داری

محمودی
۱۳۹۵/۰۸/۲۶
۲۱:۰۴

سلام خیلی ممنون از زحماتتون همیشه پاینده باشید 

mostafa
۱۳۹۶/۰۱/۲۲
۱۷:۵۲

سلام و خسته نباشید خدمت ادمین عزیز و همکارانشون ....من این کدو تو کلاس اکتیویتی2 وارد کردم اما وقتی back میزنم از برنامه جوری خارج میشه انگار که دکمه home فشار دادی...وقتی دوباره میرم داخل به جای اینکه اکتیویتی اول بیاد اکتیویتی 2 باز میشه...وقتی هم بک میزنم همون اش و همون کاسه..مشکل از کجاست؟

مصطفی دانشور
۱۳۹۶/۰۱/۲۳
۰۰:۳۶

کسی نیست جوابمو بده؟ 

admin
۱۳۹۶/۰۱/۲۴
۱۸:۴۸

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



اگر هم قصد دارید که حتما از کد همین کلید استفاده کنید، می توانید به جای ذکر کد برای دکمه Back گوشی، یک Button بسازید و کد را برای آن قرار دهید. در این حالت، با اشاره بر روی Button از برنامه اندروید خارج می شود و با اجرای دوباره برنامه اندروید، وارد همین آخرین Activity می شوید، اما اگر کاربر بر روی دکمه Back گوشی اشاره کند، مطابق عملکرد پیش فرض این دکمه، به Activity قبلی باز می گردید.


بنابراکد لازم برای خروج از برنامه اندروید، به گونه ای که در اجرای بعدی برنامه به همان آخرین Activity که در آن بودیم وارد شویم)

محمدرضا
۱۳۹۶/۰۲/۰۷
۱۳:۴۶

با سلام و احترام
من یک اسلاید منو طراحی کردم و توش ی گزینه گذاشتم برای خروج
اما از دستور alert dialog استفاده نکردم بلکه خودم ی لایوت برای خروج طراحی کردم که توش دو تا دکمه داره
اما نمیدونم چ جوری این دو تا دکمه رو ادرس بدم....چون هرجوری ادرس میدم و با دستور finish() میگم ببنده استاپ ورکینگ میده

حالا نمیدونم چ جوری این دو تا دکمه رو راه بندازم
اگر امکانش هست راهنمایی بفرمایید ممنونتان میشوم

مصطفی دانشور
۱۳۹۶/۰۲/۲۷
۰۱:۲۷

سپاسگزارم ادمین عزیز

جعفر
۱۳۹۶/۰۵/۱۷
۲۱:۰۵

سایت عالی داری ادمین جان
به راهت ادامه بده
همینه

zahra
۱۳۹۷/۰۶/۲۶
۲۰:۳۰

سایتتون فوق العاده ست..... هر سوالی برام پیش میاد اینجا جوابش پیدا میشه
مررررسی

احسان
۱۳۹۷/۱۱/۰۴
۱۳:۰۲

عاااااااالی بود. سایت های خارجی هم حتی مشکلم رو حل نکردن

سینا
۱۳۹۸/۰۵/۲۹
۱۳:۱۴

خیلی ممنون عالیه

Morteza gh
۱۳۹۸/۱۲/۲۶
۰۲:۵۵

سلام خسته نباشید دختر من این برنامه رو نصب کرده و الان این برنامه غیر فعال نمیشه هی پسورد میخواد من چکار کنم

وحیدشمس
۱۳۹۹/۰۵/۱۲
۱۸:۰۷

با سلام.ی برنامه باز شده تو گوشیمون zoodles. هرکاری میکنم قفلش باز نمیشه. این برنامه بسته هم نمیشه. لطفا راهنمایی کنید.

سالار
۱۴۰۰/۱۰/۰۲
۱۳:۵۴

سلام ۱۹۵۰ رو امتحان کنید

عرفان
۱۴۰۱/۰۶/۱۷
۲۱:۰۷

اقا دمت گرم بابت این رمز

AHMAD
۱۴۰۲/۱۱/۱۷
۱۸:۲۲

ممنون

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