Android 在没有调用finish()的情况下调用onDestroy

Android 在没有调用finish()的情况下调用onDestroy,android,activity-finish,ondestroy,Android,Activity Finish,Ondestroy,我们构建了一个Android启动器,在onDestroy()和finish()中有一些奇怪的行为。根据和,isFinishing()只有在对活动调用finish()时才应为true。但是,虽然从未对MainActivity调用finish(),但在MainActivity的onDestroy()方法中isFinishing()为true 创建MainActivity后的第一次,当用户通过Play Store安装或卸载应用程序时,在退出Play Store后调用MainActivity的onDes

我们构建了一个Android启动器,在onDestroy()和finish()中有一些奇怪的行为。根据和,
isFinishing()
只有在对活动调用finish()时才应为true。但是,虽然从未对MainActivity调用finish(),但在MainActivity的onDestroy()方法中isFinishing()为true

创建MainActivity后的第一次,当用户通过Play Store安装或卸载应用程序时,在退出Play Store后调用MainActivity的onDestroy()。这只会在第一次执行时发生,然后按预期调用onResume()方法,而不会重新创建MainActivity

我正在检查isFinished()是否按如下方式调用:

@Override
public void finish() {
    // (Never called)
    super.finish();
    Log.i(TAG, "Finish called. " + isFinishing()); 
}

@Override
public void onStop() {
    super.onStop();
    // When opening the Play Store app, isFinishing is false here
    Log.i(TAG, "onStop called. Finishing: " + isFinishing()); 
}

@Override
public void onDestroy() {
    super.onDestroy();
    // When exiting the Play Store app (opening our Launcher), isFinishing is true the first time,
    // after that onDestroy isn't called anymore.
    Log.i(TAG, "onDestroy called. Finishing: " + isFinishing()); 
}
有人知道为什么在安装/卸载应用程序后第一次调用onDestroy吗?
谢谢

文档中明确指出:检查此活动是否正在完成,或者是因为您对其调用了finish(),或者是其他人要求它完成。事实上,我也阅读了文档。但是在这种情况下,不会对main活动调用finish()吗?因为从来没有人打过电话。对于我的活动,还有什么其他流程可以称为“完成”?可能是Play Store应用程序吗?该框架可能会在其认为必要时破坏活动。它不需要调用finish()。文件中的语言模棱两可;它没有明确说明必须有人调用finish()。好的,有人是框架,并且“请求它完成”并不意味着它必须对活动调用finish()。再想想,有人可能是任何可以请求框架终止其他进程的应用程序。谢谢,这很有帮助。我查过了,好像是这样的。不知道为什么,但我会调查的。