【问题标题】:Confirm application closure when pressing back button按下返回按钮时确认应用程序关闭
【发布时间】:2012-07-03 17:43:49
【问题描述】:

我怎样才能使按下后退按钮不会关闭我的应用程序?我想显示一条确认消息。

谢谢。

【问题讨论】:

  • 您是说要显示确认消息,例如“再次按下以退出”之类的内容吗?你想让第二次按下后退按钮做点什么吗?

标签: android application-close


【解决方案1】:

来源:Override back button to act like home button

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //Display confirmation here, finish() activity.
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

这是一个非常快速的搜索,下次尝试看一下。

【讨论】:

    【解决方案2】:

    应用关闭确认在这里

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("Do you want to close?")
                   .setCancelable(false)
                   .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            //do finish
                        ImageViewActivity.this.finish();
                       }
                   })
                   .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           //do nothing
                           return;
                       }
                   });
            AlertDialog alert = builder.create();
            alert.show();
    
    
        }
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

      【解决方案3】:

      按下后退按钮试试这个,它会显示确认消息

      @Override
      public void onBackPressed() {
          AlertDialog.Builder builder = new AlertDialog.Builder(this);
          builder.setMessage("Thank You!!!!!")
                 .setCancelable(false)
                 .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int id) {
                         //do things
                     }
                 });
          AlertDialog alert = builder.create();
          alert.show();
      }   
      

      【讨论】:

        【解决方案4】:

        不建议退出您的 Android 应用程序。Android 的设计不支持选择退出应用程序,而是由操作系统管理它。你可以通过对应的 Intent 调出 Home 应用:

        您可以在 Android 1.x 及更高版本的 onKeyDown() 或 Android 2.x 及更高版本的 onBackPressed() 上触发此 Intent

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

        一个更简单的方法是捕获后退按钮按下并调用 moveTaskToBack(true),如下所示:

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                moveTaskToBack(true);
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-13
          • 2013-02-23
          • 1970-01-01
          • 1970-01-01
          • 2016-08-31
          • 1970-01-01
          相关资源
          最近更新 更多