One approach is to send those extras to the detail view, and then when you navigate back, you send those extras back, so when your activity (the one with the listView) it won't crash.
It would look something like:
baseActivity.java (this is the one with the ListView)
Intent intent = new Intent(this, detailView.class);
intent.putExtra("nameHere1", valueHere1);
intent.putExtra("nameHere2", valueHere2);
//just put extra's here
startActivity(intent);
finish();
and in your detailView.java would do something like this in your onBackPressed:
Intent intent = new Intent(this, baseActivity.class);
intent.putExtra("nameHere1", getIntent().getExtra("nameHere1"));
intent.putExtra("nameHere2", getIntent().getExtra("nameHere2"));
//just put extra's here
startActivity(intent);
finish();
Another solution is to NOT call finish();
in your baseActivity, your activities will look like:
baseActivity.java (this is the one with the ListView)
Intent intent = new Intent(this, detailView.class);
intent.putExtra("nameHere1", valueHere1);
intent.putExtra("nameHere2", valueHere2);
//just put extra's here
startActivity(intent);
detailView.java would do something like this in your onBackPressed:
finish();
In this approach, you don't "kill" the baseActivity so its values are still in there when the detailView comes on screen. However, I do not really support this approach as it takes up unnecessary RAM.