似乎有一个错误startActivity.
通过在AndroidManifest.xml中设置singleTop不同的活动taskAffinity并使用Intent.FLAG_ACTIVITY_NEW_TASKwhen调用startActivity,可以在两个任务中创建两个活动(每个任务一个活动).
startActivity再次调用将返回第一个活动/任务并被onNewIntent调用.但是,调用startActivity第四个时间将返回第二个活动/任务,但onNewIntent不会被调用.
两个任务之间的唯一区别是他们taskAffinity.不知何故,观察到不对称行为.
但是,如果Intent.FLAG_ACTIVITY_SINGLE_TOP也使用了,则按onNewIntent预期调用.
这样看来,singleTop在AndroidManifest.xml是不一样Intent.FLAG_ACTIVITY_SINGLE_TOP的Intent.
public class ActivityA extends Activity implements OnClickListener {
private String tag;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tag = getClass().getName();
Log.v(tag, "onCreate()");
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
button.setText(tag.endsWith("ActivityA") ? "Activity B"
: "Activity A");
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent … android ×1