public void selectDestination(View view){ //add if clause to check if we are already in destination Intent intent = new Intent(this, destinationActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("car_obj", (Parcelable) car); startActivityForResult(intent, 1); } public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1) { if(resultCode == RESULT_OK){ if(data.getParcelableExtra("car_obj") != null) car = (Car) data.getParcelableExtra("car_obj"); } } } ///Started Activity/// Intent intent = getIntent(); if(intent.getParcelableExtra("car_obj") != null) { if (car == null) car = (Car) intent.getParcelableExtra("car_obj"); } else{ //load from file if no intent and no result CarFileManager cfm = CarFileManager.getInstance(); cfm.setFile(getBaseContext()); cfm.loadCar(getBaseContext()); car = cfm.getCar(); } intent.removeExtra("car_obj"); @Override public void onBackPressed(){ Intent intent = new Intent(this, destinationActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("car_obj", (Parcelable) car); setResult(RESULT_OK, intent); super.onBackPressed(); }