如何通过按钮单击以编程方式退出应用程序

时间:2013-01-02 05:53:42

标签: android

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

按钮点击的代码是

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

但需要两次点击才能退出应用。

7 个答案:

答案 0 :(得分:22)

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

  quitBtn.setOnClickListener(new View.OnClickListener() {         
        @Override
        public void onClick(View paramView) 
      {
            finish();          
            moveTaskToBack(true);
        }
    });

答案 1 :(得分:10)

使用它对我有用:

quitBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View paramView) {

                moveTaskToBack(true); 
                MainActivity.this.finish();
            }
});

答案 2 :(得分: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中退出,我会设置一个标志。

答案 3 :(得分:2)

您需要做的是finishAffinity();关闭所有有效活动。

quitBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View paramView) {
        finishAffinity();
    }});

答案 4 :(得分: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" />

答案 5 :(得分:0)

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

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

的不同之处的更多信息

How exactly does the android:onClick XML attribute differ from setOnClickListener?

答案 6 :(得分:0)

  

完成活动或退出应用

   @Override
    public void onBackPressed() {
        this.finish();
    }