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

时间:2017-09-04 06:11:10

标签: android background exit-code

我想在应用中添加一项功能。我想在我点击退出按钮时关闭应用程序,但我的按钮在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();


            }
        });

//但是在Dialog

中完成不起作用

3 个答案:

答案 0 :(得分:1)

首先关闭所有已暂停的活动。比你可以关闭应用程序。你记得这个活动是最后一次。

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
       }
   });

答案 1 :(得分:0)

首先在对话框类中传递调用者活动的上下文,然后说MainActivit.class context

现在先关闭对话框

//为了避免窗口泄漏,就像破坏活动一样,它的上下文也会消失。

 dialog.dismiss();

然后

((Activity) context).finish();

答案 2 :(得分:0)

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

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();


        }
    });