Android开发:在onCreate中调用finish()前是否需调用setContentView()?
关于在onCreate中提前finish是否需要调用setContentView的问题
完全不需要在调用finish()之前调用setContentView()。
Android的Activity生命周期里,super.onCreate(savedInstanceState)已经完成了Activity初始化的核心工作,finish()的作用是直接终止当前Activity的生命周期——这时候还没设置布局的话,系统根本不会去尝试渲染任何界面,完全不会有异常或者问题。甚至如果你的Activity本来就不需要展示任何内容(只是做一些前置判断就结束),完全可以跳过setContentView这一步。
再看你拟采用的代码写法:这个写法是完全正确的。你在super.onCreate之后立刻判断条件,满足就调用finish()并return,直接终止后续代码执行,既避免了不必要的布局加载和控件初始化,逻辑上也清晰合理,是很标准的实现方式。
小补充:如果条件满足时需要给用户额外反馈(比如跳转到其他页面),可以在finish()之前添加对应的跳转逻辑;但如果只是单纯结束当前Activity,你现在的代码就足够了。
内容的提问来源于stack exchange,提问作者no one special
相关产品推荐
相关产品推荐

