Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用“后退”按钮退出应用程序_Android_Bluetooth - Fatal编程技术网

Android 使用“后退”按钮退出应用程序

Android 使用“后退”按钮退出应用程序,android,bluetooth,Android,Bluetooth,我有一个使用蓝牙的应用程序,需要在退出和后退按钮上退出蓝牙连接。我已经设置了一个退出按钮,它可以与Finish()和System.Exit(0)配合使用,但是需要对back按钮使用相同的方法。我读过好几篇文章,说不建议使用退出按钮。我正在寻求对这一做法的进一步评论 BtnExit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {

我有一个使用蓝牙的应用程序,需要在退出和后退按钮上退出蓝牙连接。我已经设置了一个退出按钮,它可以与Finish()和System.Exit(0)配合使用,但是需要对back按钮使用相同的方法。我读过好几篇文章,说不建议使用退出按钮。我正在寻求对这一做法的进一步评论

      BtnExit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
            System.exit(0);
        }

    });
我添加了OnDestroy和OnStop,它们同时负责返回按钮和主页按钮。我选择关闭应用程序,而不是关闭蓝牙连接

    @Override
protected void onDestroy() {
    super.onDestroy();
    finish();
    System.exit(0);
}

@Override
protected void onStop() {
    super.onStop();
    finish();
    System.exit(0);


}

您可以重写

由于要关闭连接,我认为最好覆盖
ondestory()方法,当应用程序从内存中显式删除或删除以为其他进程腾出空间时,将调用该方法

如果您想在
活动
不再可见时关闭连接,您可以覆盖
顶部
,而不是
onDestroy

@override
public void onDestroy(){
    //your bluetooth disconnection code
}
你可以用

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK) {
        finish();
        System.exit(0);
     }
     return super.onKeyDown(keyCode, event);
   }

听起来您想覆盖onBackPressed()。

只是想让您知道,自己以这种方式关闭应用程序是一件坏事。您应该让系统关闭应用程序本身。按照关闭应用程序的方式,只需忽略活动生命周期()