onActivityResult 내에서 startActivity구문을 실행할 경우 해당 Activity가 두번 create됩니다.
간단히 테스트 코드로 작성해보면 

A Activity내에서 onActivityResult를 구현
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i("test", "----- return result -----");
switch (requestCode) { case _REQUEST_OK :
Intent intent = new Intent(getApplicationContext(), B.class);
intent.putExtra("uri", data.getDataString());
startActivity(intent);
break;

  default : break;
}

B Activity 내에는 아래와 같이 구성
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("test", "----- pass -----");
}


이와 같이 작성한 후 실행할 경우
Log에
----- return result -----
----- pass -----
----- pass -----

출력됩니다. 즉 B가 두번식 onCreate되는 것 같은데 혹시 이유를 알고 계신분 있으신가요?