无法在 android 中从 Dialog 关闭应用程序

Not able to close app from Dialog in android

我想在应用程序中添加一项功能。我想在单击退出按钮时关闭应用程序,但我的按钮在 Dialog 上,所以当我尝试使用 finish() 时,它不会执行相同的操作。我只想关闭 app.Please 帮助。

// 相同的代码

    if (v.getId() == R.id.imgLogout) {

        AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
        alertDialog.setMessage("Are you sure you want to exit?");
        alertDialog.setPositiveButton("YES", new OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // session.logoutUser();
                finish();


            }
        });

// 但完成在对话框中不起作用

首先关闭所有暂停Activity。比你可以关闭应用程序。你记住这个activity是最后一个

if (v.getId() == R.id.imgLogout) {

    AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
    alertDialog.setMessage("Are you sure you want to exit?");
    alertDialog.setPositiveButton("YES", new OnClickListener() {

     public void onClick(DialogInterface dialog, int which) {                
           finish();
          // context.finish();  if use in fragment
       }
   });

首先在你的对话中class传递调用者活动的上下文说MainActivit.class上下文

现在先关闭对话框

//以避免 window 泄漏,因为破坏 activity 它的上下文也会消失。

 dialog.dismiss();

然后

((Activity) context).finish();

关闭应用程序的一种非常简单的方法是:

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

所以在你的情况下试试这个:

 if (v.getId() == R.id.imgLogout) {

    AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
    alertDialog.setMessage("Are you sure you want to exit?");
    alertDialog.setPositiveButton("YES", new OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            // session.logoutUser();
            Intent intent = new Intent(Intent.ACTION_MAIN);
                    intent.addCategory(Intent.CATEGORY_HOME);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                    finish();


        }
    });