Android 为什么我的活动的onPause方法在;“家”;按钮按下了吗?

Android 为什么我的活动的onPause方法在;“家”;按钮按下了吗?,android,android-activity,Android,Android Activity,我有一个扩展了AppCompatActivity的Android活动,我感到非常困惑,因为当我在我的手机(Android 7.1.1上的Sony Xperia,API 25)上测试它时,按下Home按钮时不会调用onPause方法 事实上,似乎没有任何活动生命周期事件是由放在后台的应用程序触发的。在我的活动中,我有以下几点: @Override public void onPause() { super.onPause(); Log.i(TAG, "Pause the Activ

我有一个扩展了AppCompatActivity的Android活动,我感到非常困惑,因为当我在我的手机(Android 7.1.1上的Sony Xperia,API 25)上测试它时,按下Home按钮时不会调用
onPause
方法

事实上,似乎没有任何活动生命周期事件是由放在后台的应用程序触发的。在我的活动中,我有以下几点:

@Override
public void onPause()
{
    super.onPause();
    Log.i(TAG, "Pause the Activity.");
}

@Override
public void onStop() {
    super.onStop();
    Log.i(TAG, "Stop the Activity");
    forceClose();
}

@Override
protected void onUserLeaveHint(){
    super.onUserLeaveHint();
    Log.i(TAG, "User leaving the Activity");
    forceClose();
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    if (!hasFocus)
    {
        Log.i(TAG, "Window focus changed- Activity no longer has focus.");
    }
}
当我按下“主页”按钮时,这些都没有被调用。事实上,在我的代码中似乎没有发生任何事情,我的应用程序只是从视图中消失。如果我启动一个不同的应用程序,所有活动结束生命周期调用(包括
onPause
)都会突然在该点发生

这对我来说是个问题,因为活动需要大量的电池,如果用户把电池放在后台,我不想浪费用户的电池。而且,它似乎没有从背景中很好地恢复过来,所以似乎更容易取消它

关于这一点,SO()上有各种各样的问题,但似乎没有一个涉及到这种情况,
onPause
文档表明,当一个应用程序被发送到后台时,会调用它,但在其他地方,我看到它表明,只有在另一个应用程序启动时才会调用它,所以这可能解释了我所看到的


当我的应用程序被发送到后台时,如何查找

尝试在onPause方法中显示Toast once,看看会发生什么。@SurajVaishnav我已经将其写入Logcat并设置了调试断点,它对于何时调用和不调用都是明确的。后台不会触发它。可能在应用程序关闭后,调试器停止从设备发送日志。只是一个thought@SafalSharma不,它一直都在后台给Logcat弹出提示。它不会停止,直到另一个应用程序被打开。然后调用
onPause
。当我的应用暂停时不会。请尝试重写其他方法,如onRestart()、onResume()和onDestroy()。之后,不要单击home按钮,而是尝试back按钮,查看是否触发了任何方法或日志消息。