Activity launchMode为singleTask或singleInstance时Intent获取的getExtra为空


当Activity launchMode为singleTask或singleInstance,启动一个activity时通过intent.putExtra传数据时,在该Activity中通过getIntent() 获取的intent对象获取Extra参数为空,只有第一次获取到的对象不为空。

原因是:activity的getIntent()方法只是获取activity原来的intent。

解决方法:重载onNewIntent()方法。

@Override  

protected void onNewIntent(Intent intent) {        

    super.onNewIntent(intent);  

    setIntent(intent); 

    //通过 intent获取传递过来的数据
    if(intent != null && intent.getBooleanExtra("srartRecordScreen",false)){
            Log.d(TAG, "onNewIntent startCountTime");
            startCountTime();
    }
}


猜你喜欢

转载自blog.csdn.net/zhuxingchong/article/details/80481156
今日推荐