Java ANDROID onBackPressed不适用于该活动

Java ANDROID onBackPressed不适用于该活动,java,android,activity-lifecycle,Java,Android,Activity Lifecycle,我为我的活动实现了onBackPressed,它将检查互联网连接,但当我在平板电脑中单击后退按钮时,它什么也不做。我不明白是什么原因造成的。你能帮忙吗 下面是我的代码 if (!cd.isConnectingToInternet()) { AlertDialog.Builder splash = new AlertDialog.Builder(this); splash.setIcon(R.drawable.ic_fail) .se

我为我的活动实现了onBackPressed,它将检查互联网连接,但当我在平板电脑中单击后退按钮时,它什么也不做。我不明白是什么原因造成的。你能帮忙吗

下面是我的代码

if (!cd.isConnectingToInternet()) {
        AlertDialog.Builder splash = new AlertDialog.Builder(this);
        splash.setIcon(R.drawable.ic_fail)
                .setTitle("No Internet Connection")
                .setMessage(
                        "Please check your internet connection and try again.")
                .setCancelable(false)
                .setPositiveButton("Try again",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                Intent splash = new Intent(
                                        getApplicationContext(),
                                        SplashActivity.class);
                                startActivity(splash);
                                finish();
                            }
                        })
                .setNegativeButton("Wifi Setting",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                startActivity(new Intent(
                                        android.provider.Settings.ACTION_WIFI_SETTINGS));
                                dialog.cancel();
                            }
                        });
        AlertDialog alert = splash.create();
        alert.show();
    } else {
        Thread timer = new Thread() {
            public void run() {
                try {
                    sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    Intent login = new Intent(getApplicationContext(),
                            LoginActivity.class);
                    startActivity(login);
                    finish();
                }
            }
        };
        timer.start();
    }
}

public void onRestart() {
    super.onRestart();
    Intent splash = new Intent(getApplicationContext(),
            SplashActivity.class);
    startActivity(splash);
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    finish();
}

-
finish()
是关闭活动的正确方法

-但是如果由于某种原因,它仍然没有使用
系统。在
finish()之后退出(0)
。。这个肯定会起作用。。。。我知道它很粗糙…但是很有效

/////////////////Edited Part/////////////strong>

-覆盖
活动的方法
onKeyDown()

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 

               this.finish(); 

            } 
        return true;
    }

-
finish()
是关闭活动的正确方法

-但是如果由于某种原因,它仍然没有使用
系统。在
finish()之后退出(0)
。。这个肯定会起作用。。。。我知道它很粗糙…但是很有效

/////////////////Edited Part/////////////strong>

-覆盖
活动的方法
onKeyDown()

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 

               this.finish(); 

            } 
        return true;
    }
评论,然后检查

//super.onBackPressed();
评论,然后检查

//super.onBackPressed();
试试这个:

@Override
    public void onBackPressed() {
        yourclassname.this.finish();
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);
        getParent().finish();
    }
试试这个:

@Override
    public void onBackPressed() {
        yourclassname.this.finish();
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(0);
        getParent().finish();
    }

试试这个。我想这对你有用

@Override
public void onBackPressed() {
//super.onBackPressed();
// finish your Activity
ActivityName.this.finish();
return;
}

试试这个。我想这对你有用

@Override
public void onBackPressed() {
//super.onBackPressed();
// finish your Activity
ActivityName.this.finish();
return;
}
试试这个代码

 @Override
        public void onBackPressed()
        {
            moveTaskToBack(true);
        }
试试这个代码

 @Override
        public void onBackPressed()
        {
            moveTaskToBack(true);
        }

你想关闭反压应用程序还是检查互联网…关闭应用程序@KumarVivekMitraDo你想关闭反压应用程序还是检查互联网…关闭应用程序@KumarVivekMitrais这是使用system.ext(0)的正确方式吗?@SarahPhil我在第二点中已经提到了
system.exit(0)
将是一种粗糙的方法………但到目前为止,它一直对我很好………这是使用system.ext(0)的正确方法吗?@SarahPhil我已经在第二点中提到了
system.exit(0)
这将是一种粗糙的方法…………但到目前为止,它对我一直都很好…………一些文本将有助于这个答案一些文本将有助于这个答案