Instead of re-launching the MainActivity
using a startActivity()
call you should instead call finish()
on the SettingsActivity
in your save method, once you have persisted your various changes.
The default behaviour will then take you back to the last Activity that was running, in this situation your MainActivity
.
A more complete example;
// MainActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.action_settings:
Intent settingActivity = new Intent(MainActivity.this, SettingActivity.class);
startActivity(settingActivity);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onResume() {
// This will be called after you finish SettingsActivity.
}
// SettingsActivity
private void save() {
// Save your current options
finish();
}