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

exit button in android not working

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

1
2
3
4
5
6
7
8
9
10
closebtn.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View v)
            {
                // TODO Auto-generated method stub
                finish();
            }
        });

page5单击close button主页打开。

1
2
3
4
5
6
7
8
9
10
11
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页而不是关闭应用程序。

请帮我找到问题所在

提前致谢。


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

所以现在你有多种选择

  • 在开始下一个活动之前完成上一个活动
  • startactivityforresult开始第二次活动。完成后,您可以访问onActivityResult来完成。
  • 还有其他可能的选择。


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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    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);
           }
    });

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


    试试这个:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     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();
                    }
                });


    你需要清除顶级活动。
    也许你可以尝试这样的事情

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

    1
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    另外,在意图中添加一些额外的布尔值

    1
    intent.putExtra("EXIT", true);

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

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