【问题标题】:What code must be run in onCreate() before finish() can be called?在调用 finish() 之前必须在 onCreate() 中运行什么代码?
【发布时间】:2014-08-23 11:37:05
【问题描述】:

我想对 Activity 的onCreate() 中的条件进行测试,如果为真,将调用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();
}

【问题讨论】:

    标签: android android-activity oncreate activity-finish


    【解决方案1】:

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

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); //REQUIRED
    
        if (isVariable) {
         finish();
        } else {
         setContentView(R.layout.activity_main);
         //code here
        }
    }
    

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

    而且你不应该调用setContentView,如果你会在onCreate中调用finish来节省内存/速度。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 2010-12-19
      • 1970-01-01
      • 2017-12-07
      • 2015-07-29
      • 2019-01-24
      相关资源
      最近更新 更多