【发布时间】:2010-05-26 10:08:46
【问题描述】:
例如,
在 ActivityA 中有一个按钮来创建一个 Intent,它将在新任务中启动 ActivityB,如下所示:
Intent i = new Intent(this, ActivityB.class);
i.setData(Uri.parse("http://www.google.com"));
long timestamp = System.currentTimeMillis();
i.putExtra("ts", timestamp);
i.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
Log.d(TAG, "Sending: " + timestamp);
startActivity(i);
然后在ActivityB的onResume()方法中,有这段代码可以检查时间戳:
long timestamp = getIntent().getExtras().getLong("ts");
Log.d(TAG, "Receiving: " + timestamp);
现在我第一次从 ActivityA 调用 ActivityB 时,我得到以下日志:
Sending: 120006000
Receiving: 120006000
然后,如果我让 ActivityB 在后台运行(通过按 Home 按钮),然后启动 ActivityA,然后再次调用 ActivityB,则会打印以下内容:
Sending: 120013000
Receiving: 120006000
虽然 ActivityB 似乎被新的 Intent 带到了前面。 Intent 中的额外字段被留下。
这是一个错误还是预期的行为?
【问题讨论】: