Android中onNewIntent()的用法

先看一下生命周期:

onPause
onStop 状态的话
再发送Intent的话,执行顺序为:
onNewIntent
onRestart
onStart
onResume

但是有一个坑特别奇怪,onNewIntent(Intent intent)中通过getIntent获取到的值是上一个的intent,onNewIntent参数里面的intent才是当前的intent
测试代码如下:

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if(intent!=null){
        type = getIntent().getIntExtra(Constants.TOWITCHOFHOME, Constants.TOWITCHOFHOME_DEFAULT);
        Log.e(TAG,"getIntent获取到的上一个intent传值,type="+type);
    }else{
        type = intent.getIntExtra(Constants.TOWITCHOFHOME, Constants.TOWITCHOFHOME_DEFAULT);
        Log.e(TAG,"onNewIntent 获取到的当前intent传值,type="+type);
    }
}

你可能感兴趣的:(Android中onNewIntent()的用法)