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

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

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

قبل از هر چیز، باید در روش onCreate از Activity اصلی برنامه اندروید (اولین Activity) کد زیر را بنویسیم :


if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}

کد بالا تعیین کرده است که اگر مقدار متناظر با EXIT و برابر true به این Activity ارسال شده ( آموزش شماره 236 )، کد finish(); اجرا شود که باعث می شود Activity اصلی برنامه اندروید، destroy شود (دیگر وجود نداشته باشد) و بنابراین اگر Activity دیگری از برنامه اندروید در پس زمینه وجود نداشته باشد، عملا از برنامه اندروید خارج می شویم.

همان طور که گفتیم، کد بالا باید در روش onCreate از Activity اصلی اجرا شود، بنابراین اگر فرض کنیم که Activity اصلی دارای نام MainActivity باشد، باید کد آن مشابه کد زیر نوشته شود :


package com.kelidestan.com;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                if (getIntent().getBooleanExtra("EXIT", false)) {
                    finish();
                }

        }

}

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


@Override
public void onBackPressed() {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);

در کدهای فوق، یک Intent ساخته ایم که برای رفتن به Activity اصلی (اولین Activity) به کار می رود (نام Activity اصلی را برابر MainActivity فرض کرده ایم). با روش putExtra ( آموزش شماره 236 ) ، مقدار متناظر با EXIT و برابر true ، به Activity اصلی ارسال می شود، بنابراین شرطی که با دستور if در Activity اصلی فرستادیم، صادق خواهد بود و بنابراین کد finish(); اجرا می شود. اما نکته مهم در این مرحله این است که تنها در صورتی از برنامه اندروید خارج می شویم که Activity دیگری در پس زمینه برنامه اندروید قرار نداشته باشد، بنابراین برای destroy کردن Activity هایی که بعد از Activity اصلی قرار دارند، یک FLAG با نام FLAG_ACTIVITY_CLEAR_TOP را برای Intent تعیین کرده ایم (فرض بر این است که در صف Activity هایی که در پس زمینه هستند، Activity اصلی، اولین می باشد، این مورد را از این لحاظ تذکر می دهیم که گاهی برنامه نویسان، در روش های onPause یا onStop از Activity ، کدی را برای destroy شدن آن به کار می برند یا اینکه برنامه به گونه ای است که Activity اصلی چندین بار در صف Activity ها قرار می گیرد، بنابراین اگر کد به درستی عمل نکرد، این موارد را نیز بررسی کنید ( آموزش شماره 2802 )).

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

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

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


@Override
public void onBackPressed() {
    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("EXIT", true);
    startActivity(intent);
}

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

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


Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
                                   
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("EXIT", true);
        startActivity(intent);
    }
});

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

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

برای هر اینتنت و حرکت بین اکتیویتی ها با کد نویسی از کد زیر استفاده کنید:


و برای خروج نهایی از کد های کلید 2978 استفاده کنید.

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

کد زیر تمام اکتیویتی های باز را به صورت صد در صدی میبندد 


کد زیر در ابتدای اکتیویتی یادتون نره

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