android中的退出按钮不工作

android中的退出按钮不工作,android,exit,activity-finish,Android,Exit,Activity Finish,我试图在点击按钮时关闭应用程序。所以我在主页上使用以下代码 closebtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish();

我试图在点击按钮时关闭应用程序。所以我在主页上使用以下代码

closebtn.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                finish();
            }
        });
page5
点击
close按钮打开主页

b5.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                Intent i =new Intent(Page5.this, FirstPage.class);
                startActivity(i);
            }
        });
所以当我点击主页上的关闭按钮时,它会再次转到第5页,而不是关闭应用程序

请帮我找出问题所在

提前感谢。

试试这个:

 b5.setOnClickListener(new OnClickListener() 
            {

                @Override
                public void onClick(View v) 
                {
                    // TODO Auto-generated method stub
                    Intent i =new Intent(Page5.this, FirstPage.class);
                    startActivity(i);
                    Page5.this.finish();
                }
            });
试试这个:

 b5.setOnClickListener(new OnClickListener() 
            {

                @Override
                public void onClick(View v) 
                {
                    // TODO Auto-generated method stub
                    Intent i =new Intent(Page5.this, FirstPage.class);
                    startActivity(i);
                    Page5.this.finish();
                }
            });
finish()
不会关闭应用程序。它只关闭当前活动。因此,在完成一个活动后,自然行为将返回到活动堆栈的最后一个活动

所以现在你有多种选择

  • 在开始下一个活动之前,先完成上一个活动
  • startactivityforresult启动第二个活动。完成后,您可以了解活动结果以完成
  • 还有其他可能的选项。

    finish()
    不会关闭应用程序。它只关闭当前活动。因此,在完成一个活动后,自然行为将返回到活动堆栈的最后一个活动

    所以现在你有多种选择

  • 在开始下一个活动之前,先完成上一个活动
  • startactivityforresult启动第二个活动。完成后,您可以了解活动结果以完成

  • 还有其他可能的选项。

    您需要清除顶部活动。 也许你可以试试这样的

    假设在我们的应用程序中,我们有许多活动(比如说十个),我们需要直接退出这个活动。我们可以做的是,创建一个intent并转到根活动,并将intent中的标志设置为

    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
    另外,在意图中添加一些额外的like boolean

    intent.putExtra("EXIT", true);
    
    然后在根活动中,在根活动的onCreate()中检查布尔值并根据该调用finish()

    if (getIntent().getBooleanExtra("EXIT", false)) {
     finish();
    }
    

    您需要清除顶部活动。 也许你可以试试这样的

    假设在我们的应用程序中,我们有许多活动(比如说十个),我们需要直接退出这个活动。我们可以做的是,创建一个intent并转到根活动,并将intent中的标志设置为

    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    
    另外,在意图中添加一些额外的like boolean

    intent.putExtra("EXIT", true);
    
    然后在根活动中,在根活动的onCreate()中检查布尔值并根据该调用finish()

    if (getIntent().getBooleanExtra("EXIT", false)) {
     finish();
    }
    

    为退出应用程序添加以下代码

    closebtn.setOnClickListener(new OnClickListener() 
    {
    
           @Override
           public void onClick(View v) 
           {
               // TODO Auto-generated method stub
    
               Intent startMain = new Intent(Intent.ACTION_MAIN);
               startMain.addCategory(Intent.CATEGORY_HOME);
               startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
               startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
               startActivity(startMain);
           }
    });
    

    通过使用此代码,当您单击关闭按钮时,您可以直接重定向到设备主屏幕

    为退出应用程序添加以下代码

    closebtn.setOnClickListener(new OnClickListener() 
    {
    
           @Override
           public void onClick(View v) 
           {
               // TODO Auto-generated method stub
    
               Intent startMain = new Intent(Intent.ACTION_MAIN);
               startMain.addCategory(Intent.CATEGORY_HOME);
               startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
               startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
               startActivity(startMain);
           }
    });
    
    通过使用此代码,当您单击关闭按钮时,您可以直接重定向到设备主屏幕