在Android中,如果一个活动(Activity)是以singleTop或singleTask模式启动的,当一个新的intent被发送到这个活动的时候,就会调用onNewIntent方法。但是有时候,即使没有任何新的extra数据传入,onNewIntent方法也会被调用,这时需要进行处理。
解决该问题的方法是,在活动的onNewIntent方法中,判断intent是否有额外的数据,如果没有,则直接返回。示例如下:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// 若Extra为空则直接返回
if (intent.getExtras() == null) {
return;
}
// 处理Extra数据
String data = intent.getStringExtra("key");
// 其他处理代码
}