活动过渡就像这样
A -----------> B(startActivity
)
B -----------> C(startActivityOnResult
)
当我在C中设置Result in Activity并执行finish()时,我被重定向到活动A?
有人可以帮助我吗?
编辑: A -------- B
startActivity(new intent(uri,Search.class)`
B -------- C
Intent intent = new Intent(this,ContactsPicker.class);
intent.putExtra("Mode", 2);
startActivityForResult(intent,ContactsPicker.RECENT_CONTACTS);
在Activty C中:
Intent returnIntent = new Intent();
returnIntent.putExtra("contactlist",str.toString());
setResult(RESULT_OK,returnIntent);
finish();
答案 0 :(得分:0)
startActivityForResult()
方法。覆盖子活动B和C中的onStop()
或onDestory()
方法,并设置任意结果代码,例如“2”。您可以通过以下方式执行此操作:
protected void onStop() {
// TODO Auto-generated method stub
setResult(2);
super.onStop();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
setResult(2);
super.onDestroy();
}
覆盖活动A和B中的onActivityResult()
方法,并根据结果代码完成活动。您可以通过以下方式执行此操作:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==2){
finish();
}
}
这应该在活动C结束时完成所有活动。