activity中finish方法的学习一

今天想到一个问题,activity里面的静态变量,在activity打开新的activity时,并且调用finish(),新的activity中是否可以读到静态变量。

晚上网上查了下,说的是finish()后,静态变量还是可以读到的。
自己写了一个小case进行了验证,果然如上所述。
打开新的activity代码如下:
Intent intent=new Intent();
intent.setClass(this, new_activity.class);
startActivity(intent);
一开始是在startActivity后调用的finish(),我想要是finish()放在之前会怎么样,结果结果和之前还是一样。。。
继续google,才知道即使activity调用了finish(),也不会立即调用onDestory方法,而是执行完finish()后面的代码后才会调用onDestory方法。

自己的验证代码如下:
public void start_newActivity(){
    Intent intent=new Intent();
    intent.setClass(this, new_activity.class);
    startActivity(intent);
   
    Log.v(TAG, "finish");
     finish();
    }
   
    @Override 
    protected void onDestroy() { 
            super.onDestroy(); 
            Log.v(TAG, "onDestroy"); 
        } 
这样的执行结果是,finish后会立即调用onDestory;
将finish放在打开activity之前,执行结果:finish后先去打开新的activity,之后才去调用onDestory。

上面的得出的结果,代码验证是OK的,但是具体的原理需要后面学习的了解。。。

你可能感兴趣的:(Activity)