Activity收不到bundle值

Activity有四种启动模式,一般为默认。

当Activity的启动模式为singleTask或singleInstance的时候,通过Intent传值,getIntent是接收不到值的,为null。

当Activity的启动模式为singletop的时候,若Activity位于栈顶,Activity也不会重建,那么通过Intent传值,getIntent也是接收不到值的。

当页面再次被调用的时候,可以在onNewIntent方法中setIntent(intent),再走onRestart。

所以需要重写onNewIntent方法,而且此方法在Activity Finish之后是不执行的。

//finish之后是不执行的
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);//设置新的intent
        
        String data = getIntent().getStringExtra("data");
        ...
    }

猜你喜欢

转载自blog.csdn.net/weixin_53545232/article/details/140912746