android中的退出按钮无法正常工作

时间:2013-06-25 08:18:56

标签: android exit activity-finish

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

closebtn.setOnClickListener(new OnClickListener() 
        {

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

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页而不是关闭应用程序。

请帮我找到问题

提前致谢。

4 个答案:

答案 0 :(得分:2)

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

所以现在你有多个选择

  1. 在开始下一个活动之前完成上一个活动
  2. startactivityforresult开始第二项活动。完成后,您可以使用onActivityResult来完成。
  3. 还有其他可能的选择。

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:1)

您为退出应用添加以下代码。

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

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

答案 3 :(得分:0)

您需要清除热门活动。 也许你可以试试这样的东西

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

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

另外,在意图

中添加一些额外的布尔值
intent.putExtra("EXIT", true);

然后在root活动中,检查boolean的值,并根据调用finish(),在根活动的onCreate()中

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