1、先看代码片段,MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
{
Intent intent = new Intent(this, OneActivity.class);
startActivity(intent);
this.finish();
System.out.println("jump to OneAct...");
}
{
Intent intent = new Intent(this, TwoActivity.class);
startActivity(intent);
this.finish();
System.out.println("jump to TwoAct...");
}
System.out.println("onCreate end...");
}
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("onDestroy...");
}
@Override
protected void onStop() {
super.onStop();
System.out.println("onStop...");
}
@Override
protected void onPause() {
super.onPause();
System.out.println("onPause...");
}
@Override
protected void onResume() {
super.onResume();
System.out.println("onResume...");
}
@Override
protected void onStart() {
super.onStart();
System.out.println("onStart...");
}2、执行结果:
System.out.println("jump to OneAct..."); ---------------->打印
System.out.println("jump to TwoAct...");---------------->打印
System.out.println("onCreate end...");---------------->打印
System.out.println("onDestroy...");---------------->打印
3、分析结果:
a、在onCreate()里执行finish()方法,并不是立即return,而是整个onCreate()方法都会执行完毕;
b、在onCreate()里执行finish()方法,中间很多的生命周期函数不会被调用,如onResume()、onPause、onStop等,最后会执行onDestroy(),Activity被销毁。
本文分析了在Android开发中,MainActivity的onCreate方法内调用finish方法的行为及其对Activity生命周期的影响,指出此操作会导致部分生命周期回调不被执行,并最终触发onDestroy方法。
1211

被折叠的 条评论
为什么被折叠?



