Activity有四种启动模式,一般为默认。
当Activity的启动模式为singleTask的时候,通过Intent传值,getIntent是接收不到值的,为null。
因为不同的启动模式,走的方法也不一样。当页面再次被调用的时候,先走onNewIntent方法再走onRestart。
所以需要重写onNewIntent方法,而且此方法在Activity Finish之后是不执行的。
//finish之后是不执行的
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);//设置新的intent
String data = getIntent().getStringExtra("data");
...
}

本文深入探讨了Android中Activity的不同启动模式,重点介绍了singleTask模式下Intent传递的特点。当Activity处于singleTask模式时,通过Intent传递的数据无法直接通过getIntent获取,此时需要重写onNewIntent方法来处理新的Intent数据。
1万+

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



