1

我想关闭我的整个应用程序。我已经尝试过finishActivity()背压,但它不起作用。我想在back新闻发布会上完全关闭我的申请。我该怎么做?

 public void onImageViewClicked(View view){
        switch(view.getId()){
            case R.id.viewStk:
intent = new Intent(MainActivity.this,ViewStkActivity.class);
                startActivityForResult(intent, 12);
                break;
            case R.id.about:
                Intent aboutIntent = new  Intent(MainActivity.this,AboutActivity.class);
                startActivity(aboutIntent);
                break;
    } 

}
4

4 回答 4

5
public void onClick(View v) {
    finish();
    android.os.Process.killProcess(android.os.Process.myPid());
}
于 2012-09-12T05:42:55.930 回答
5

我用:

@Override
public void onDestroy()
{
    super.onDestroy();
    // Force the process to be killed on finish(), not kept around
    System.runFinalizersOnExit(true);
    System.exit(0);
}

使用后调用this.finish()

(这是活动的一个被覆盖的方法)

人们会抱怨并告诉你它破坏了 Android 应用程序的生命周期,但是在开发过程中在我的应用程序上设置一个“退出”按钮立即提高了我的工作效率。

编辑

显然,最新版本的 API 指出该runFinalizersOnExit功能已弃用且不安全。我在 Gingerbread、ICS 或 JB 上没有任何问题。但为了充分披露,我会指出这一点。

于 2012-09-12T05:35:43.120 回答
0

这也将有所帮助

Intent i = new Intent(yourScreen.this,Home.class);
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        i.putExtra("EXIT", true);
        startActivity(i);

并在 Home 类的 onCreate 中,执行此操作以检查,

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

这基本上会做的是,无论您从事什么活动,您都可以使用清晰的顶部标志调用主屏幕。在主屏幕中,onCreate 方法中有一个检查条件,这将有助于清除堆栈。现在,如果您按下返回按钮,您将在堆栈被清除时退出应用程序..

让我知道问题是否仍然存在...

于 2012-09-13T11:27:49.933 回答
-1

在需要实现的 activity.java 文件(fx MainActivity.java)中插入:

    public void exitProgram(View view){
    finish();
    System.exit(0);
    }

请记住,还要在 .xml 文件 fx 中调用该函数:

<Button
...
...
android:onClick="exitProgram"
...
/>

最后在按钮属性中,在“文本”属性处 - 按下字段旁边的小按钮,然后为您要使用的按钮选择一个 - 完成。

一个好方法吗?一点都不。但如果你只想要一个“panic-lets-get-outta-here”按钮,那么就可以了。

有很多不同的方法可以实现退出功能(其中一种显示在这里)——因为有很多方法可以实现简单的“Hello World”程序——每一种都有它们的价值,你应该真正考虑一下,为什么你选择了你拥有的那个。

于 2019-09-25T18:58:36.583 回答