在onCreate()里面的finish()无效的回调

时间:2015-01-15 11:48:54

标签: android

根据onCreate文档:

  

您可以在此功能中调用finish(),在这种情况下   onDestroy()将被立即调用,而不会有任何剩余的   活动生命周期(onStart(), onResume(), onPause()等)正在执行。

但我面临着不同的行为。 onCreateOptionsMenu将在onCreate后调用,onDestroy之后调用@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (...) { startActivity(...); finish(); return; } } 。有什么建议吗?

我正在运行的代码:

{{1}}

1 个答案:

答案 0 :(得分:3)

方法onCreateOptionsMenu()不正式属于生命周期方法。也许这就是它被调用的原因。如果这对您来说是一个问题,您只需添加一个支票并立即退出。

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

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