Android onCreate()内部的finish()无效回调

Android onCreate()内部的finish()无效回调,android,Android,根据onCreate文档: 您可以在此函数中调用finish(),在这种情况下 将立即调用onDestroy(),而不调用 活动生命周期(onStart()、onResume()、onPause()等)正在执行 但我面临着不同的行为oncreateoptions菜单将在onCreate之后调用,并且仅在该onestory之后调用。有什么建议吗 我正在运行的代码: @Override public void onCreate(Bundle savedInstanceState) {

根据onCreate文档:

您可以在此函数中调用
finish()
,在这种情况下 将立即调用onDestroy(),而不调用 活动生命周期(
onStart()、onResume()、onPause()等)正在执行

但我面临着不同的行为
oncreateoptions菜单
将在
onCreate
之后调用,并且仅在该
onestory
之后调用。有什么建议吗

我正在运行的代码:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (...) {
            startActivity(...);
            finish();
            return;
        }
}

方法
onCreateOptions菜单()
并不正式属于生命周期方法。也许这就是为什么它会被叫来。如果这是您的问题,您只需添加一个检查并立即退出即可

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if (isFinishing()) {
        return false;
    }
    ...
}

onCreate()
中的代码绝对有效。

您如何调用
finish()
?您是使用(隐式)
指针指向活动实例,还是尝试对当前不在当前任务前面的活动调用finish()。您是否提到了首选活动?您是用
首选项活动
还是用正常的
活动
尝试代码?嗯。。。信息还是不够。由于您的
finish()
调用位于
onCreate()
方法中,因此您的
onCreate()
oncreateoptions菜单()
可能独立于您的
finish()
调用,但只是在
finish()
之前执行,这很可能就是我最终所做的,但我想确定这是正常的行为。谢谢。看来,onNewIntent也一样。