当我调用super.finish()时应用程序调用onPause()

时间:2013-11-26 08:54:53

标签: android handler onpause

我有这段代码

@Override
protected void onResume() {
    super.onResume();
    if (Config.SPLASH_ENABLED)
    {
        mHandler = new Handler();
        mHandler.postDelayed(mRunnable, SPLASH_DISPLAY_LENGTH);
    }
    else
    {
        doLogin();
    }
}

因此,当我按下Back按钮时,它关闭了第一个活动,但随后开始第二个活动,因此我可以同时启动此应用程序超过1个。然后我决定覆盖onBackPressed()方法。

@Override
    public void onBackPressed() {
        mHandler.removeCallbacks(mRunnable);   
        super.finish();
    }

没有帮助。覆盖此类

之后的onPause()方法
@Override
    protected void onPause() {
        mHandler.removeCallbacks(mRunnable);
        super.onPause();
    }
它工作,但我真的无法理解。重写onPause()方法之后为什么会这样?

1 个答案:

答案 0 :(得分:0)

activity lifecycle

当你打电话给内部调用onPause,onStop和onDestroy时;比为每个状态组合定义调用更简单。