Android’de Back Button kontrolü

Her uygulamada olması gereken bir özellik olduğunu düşünüyorum.Çünkü uygulamayı kullanan kullanıcıların bir şekilde uygulamada kalıp yada kalmamasını kendilerinin belirlemesi gerekir. O yüzden kullanıcıya uygulamanın ana ekranında iken bu kontrollü çıkış işlemini yaparsak kullanıcının yanlışlıkla uygulamadan çıkmasına engel olmuş oluruz.

İlk önce kontrol yapıcağımız activitye geliyoruz;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
public  class  anasayfa extends Activity {
   private static final int DIALOG_REALLY_EXIT_ID = 0
     /*bu değişkeni farklı dialoglardan ayırmak için tanımlıyoruz.Aşağıda dialog oluştururken ve kontrolünde kullanıcaz*/
    // Called when the Activity is first created.
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // Burda artık activityde ne yapmak istiyorsanız onları kodluyosunuz.
    }
                  // Burda back buttonuna basıldığındaki çıkıcak olan uyarı dialogunu oluşturuyoruz.

    @Override

    protected Dialog onCreateDialog(int id) {
        final Dialog dialog;
        switch(id) {
        case DIALOG_REALLY_EXIT_ID:
            dialog = new AlertDialog.Builder(this).setMessage(
                                "Uygulamadan çıkmak istiyor musunuz?")
            .setCancelable(false)
            .setPositiveButton("Evet",
                    new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    anasayfa.this.finish();
                             /*Burda kullanıcı evet butonuna bastığında uygulamadan kontrollü bir şekilde çıkmış oluyor.*/
                }
            })
            .setNegativeButton("Hayır",
                    new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
          /*Burada da kullanıcı hayır butonuna bastığında dialogu dismiss ederek(dialog.cancel())kullanıcının uygulamaya tekrar dönmesini sağlıyoruz.*/
                }
            }).create();
            break;
        default:
            dialog = null;
        }
        return dialog;
    }

@Override

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK)
            showDialog(DIALOG_REALLY_EXIT_ID);
        return true;
    }
     Bu kontrolü sadece uygulamadan çıkarken değil uygulamanın diğer sayfalarında  da back buttona basıldığında uygulamanın farklı bir şey yapmasını istiyorsanız da kullanabilirsiniz.Benim de kendi uygulamam da kullandığım halini altta resim olarak paylaştım.Herkese iyi çalışmalar.