Java 为什么会调用onNewIntent(Intent-Intent)方法两次?

Java 为什么会调用onNewIntent(Intent-Intent)方法两次?,java,android,Java,Android,我用两个参数开始一个新的活动 Intent Intent=newintent(WebTestActivity.this,MainActivity.class); intent.addFlags(intent.FLAG_ACTIVITY_SINGLE_TOP | intent.FLAG_ACTIVITY_CLEAR_TOP); Uri=Uri.parse(url); intent.setData(uri); 星触觉(意向); 并在onNewIntent方法中捕获uri @覆盖 public vo

我用两个参数开始一个新的活动

Intent Intent=newintent(WebTestActivity.this,MainActivity.class);
intent.addFlags(intent.FLAG_ACTIVITY_SINGLE_TOP | intent.FLAG_ACTIVITY_CLEAR_TOP);
Uri=Uri.parse(url);
intent.setData(uri);
星触觉(意向);
并在
onNewIntent
方法中捕获
uri

@覆盖
public void onNewIntent(Intent Intent){//调用两次
super.onNewIntent(意向);
Uri=intent.getData();
新建AsynkTask().execute(uri);
}
但是由于某种未知的原因,
onNewIntent
方法被调用了两次,这似乎是不对的

Intent intent = new Intent(WebTestActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);                  
intent.putExtra("url",url);
startActivity(intent)
在主要活动中

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Bundle extras = getIntent().getExtras();
    String url = extras.getString(url);

}
然后,您可以解析url并将其用作Uri。这样,方法将不会被调用两次。

onNewIntent(Intent) 对于在其包中将launchMode设置为“singleTop”的活动,或者如果客户端在调用startActivity(Intent)时使用了标志_ACTIVITY _SINGLE _TOP标志,则会调用此函数


如果它被调用了两次,那么它一定是被无关联地调用的:启动活动两次?或者手动调用该方法?

什么是AsynkTask().start?您想要什么?解析意图..伊戈尔,你能告诉我你在什么设备上发现这个问题吗?我只能在Genymotion emulator上复制它,但不能在任何其他设备(S3、S4、运行4.0.4的Galaxy Nexus、运行4.3的Nexus 7)上复制。这个问题是否仍然存在?它是否与从内部调用onNewIntent方法有关?