按下'Home'后杀死应用程序(停止它只是暂停)

时间:2013-06-26 09:58:17

标签: java android onpause activity-finish home-button

每当按下主页按钮时,都会调用onPause,但是我设置onPause来处理打开对话框时暂停绘图线程。这意味着当您按下主页按钮时,它会暂停绘图线程并保持当前活动打开,但我想关闭活动/应用程序。如何停止主页按钮调用onPause并使其完成活动?

编辑:我刚刚意识到应用程序不再可见,因此应调用onStop(),但事实并非如此。可能导致这种情况的原因是什么?

4 个答案:

答案 0 :(得分:1)

覆盖onUserLeaveHint()并相应地完成/终止您的活动/流程。

如,

@Override
public void onUserLeaveHint() {
    finish();
    super.onUserLeaveHint();
}

<强>更新

创建一个本地布尔变量来跟踪显示对话框的按钮单击。用户单击按钮后立即设置为true;在所有其他情况下(在onResume()中,一旦开始绘制线程,从对话框返回后等)保持为假。只有当该变量为真时,onPause()才会暂停绘图线程。

答案 1 :(得分:0)

您实际上可以覆盖onPause()并从那里拨打finish()

但是,不要那样做。用户期望一种常见的行为,如果您覆盖用户期望与您的应用互动的方式,他们将会感到困惑。

答案 2 :(得分:0)

它实际上崩溃了?然后你应该发布显示崩溃的LogCat。

也许您没有在被覆盖的super.onPause()方法中调用onPause()? 这是必须的,如果你忘了它,应用程序会崩溃 - 明确地告诉你,你没有调用super.onPause()

答案 3 :(得分:-1)

   @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
    }


 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {     

        if(keyCode == KeyEvent.KEYCODE_HOME)
        {
           android.os.Process.killProcess(android.os.Process.myPid());
        }
    });