android - 在调用 finish() 之前,必须在 onCreate() 中运行哪些代码?

标签 android android-activity oncreate activity-finish

我想对 Activity 的 onCreate() 中的条件进行测试,如果为 true,将调用 finish()。在调用 finish() 之前是否必须调用任何代码? (调用 finish() 后是否必须运行任何代码?)

例如

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); // I'm pretty sure this is always required
    setContentView(R.layout.activity_main); // is this required?
    finish();
}

最佳答案

你可以在onCreate中自由调用finish(),而不需要调用一些额外的方法,例如:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); //REQUIRED

    if (isVariable) {
     finish();
    } else {
     setContentView(R.layout.activity_main);
     //code here
    }
}

当你调用 finish 时,它不会停止执行方法,因此请确保 finish() 行下面没有任何内容。

如果您将在 onCreate 中调用 finish 以节省内存/速度,则不应调用 setContentView

我已经测试过这种方法,效果很好。

关于android - 在调用 finish() 之前,必须在 onCreate() 中运行哪些代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25461505/

相关文章:

java - 添加 Activity,布局显示但不起作用它是 java 代码(在 Activity 上)

android - 这是从 fragment 访问数组列表的正确方法吗?

android - 更新 ListView 会减慢 UI 的其余部分

android - adb shell am 仪器进程崩溃

Android 谷歌身份验证登录 handleSignInResult :false

java - 如何在 Android 中的同一个 Activity 中添加 EditText 元素?

java - 如何使用 `onSaveInstanceState`?

android - 如何在微调器底部添加一行,就像android中的edittext一样

java - 如何创建一项具有变化数据的 Activity ?

java - 尝试在 Android Studio 上启动我的第三个 Activity 时被重定向到初始 Activity