13

我想通过单击按钮退出应用程序。

按钮单击的代码是

quitBtn.setOnClickListener(new View.OnClickListener() {         
    @Override
    public void onClick(View paramView) {
        // TODO Auto-generated method stub              
        MainActivity.this.finish();
    }
});

但它需要两次单击才能退出应用程序。

4

7 回答 7

22

使用此代码...我希望这会对您有所帮助..

  quitBtn.setOnClickListener(new View.OnClickListener() {         
        @Override
        public void onClick(View paramView) 
      {
            finish();          
            moveTaskToBack(true);
        }
    });
于 2013-01-02T05:59:49.330 回答
10

使用它对我有用:

quitBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View paramView) {

                moveTaskToBack(true); 
                MainActivity.this.finish();
            }
});
于 2013-01-02T05:58:45.513 回答
2

应用程序必须在堆栈中的第一个活动 (MainActivity) 中退出(通常是应用程序启动时启动的第一个活动)。我正在使用这段代码:

finish();
android.os.Process.killProcess(android.os.Process.myPid());

两条线都很重要。仅杀死是不够的,因为 Android 可能会自动再次启动您的应用程序,因此还必须使用 finish()。

如果你想从另一个活动中退出你的应用程序,首先回到 MainActivity 并从那里退出。要返回,我使用以下代码:

Intent i = new Intent(context, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(i);

这将调用 MainActivity 的 onCreate。使用静态变量(在应用程序上下文中)如果我想退出 onCreate,我设置了一个标志。

于 2014-02-23T01:08:26.883 回答
2

您需要做的是finishAffinity();关闭每个活动的活动。

quitBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View paramView) {
        finishAffinity();
    }});
于 2017-08-18T08:27:39.040 回答
0

试试这个可能对你有帮助。

quitBtn.setOnClickListener(new View.OnClickListener() {         
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        startActivity(intent);
    }
});

编辑清单文件

<activity android:name=".HomeActivity" android:label="@string/app_title_home" android:clearTaskOnLaunch="true" />
于 2013-01-02T05:56:53.217 回答
0

如果您刚刚onClick()在 xml 文件中给出了函数,则可以避免所有这些混淆。它将处理View.OnClickListener()

阅读下面的链接,了解有关 XML 实现与 View.OnClickListener()

android:onClick XML 属性与 setOnClickListener 究竟有何不同?

于 2013-01-02T06:16:33.650 回答
0

完成一项活动或退出应用程序

   @Override
    public void onBackPressed() {
        this.finish();
    }
于 2017-08-18T10:18:06.490 回答