Как вернутся из одной активности в предыдущую не пересоздавая ее?

Для того чтобы вернуться из одной активности в предыдущую без ее пересоздания, можно использовать метод startActivityForResult() вместо startActivity().

Ваша "предыдущая" активность должна вызвать вторую активность с помощью метода startActivityForResult(), вместо обычного вызова startActivity().

Например, чтобы вернуться из ActivityB в ActivityA, следует изменить код вызова в ActivityA:

Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent, REQUEST_CODE);

После этого в ActivityB при необходимости возвращения в ActivityA необходимо вызвать метод setResult() перед вызовом finish(). setResult() передает результат и статус текущей активности обратно в вызывающую активность:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_OK, returnIntent);
finish();

В ActivityA вы должны переопределить метод onActivityResult(), чтобы получить результат из ActivityB:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (requestCode == REQUEST_CODE) {
      if (resultCode == RESULT_OK) {
         // Здесь вы можете получить любые данные из ActivityB 
      }
   }
}

Таким образом, вы можете передать данные из ActivityB обратно в ActivityA, не пересоздавая ее. Если вы хотите вернуться без передачи данных, достаточно вызвать finish() в ActivityB.