I've just applied Nepster's solution and works like a charm. There is a minor modification to run it from a Fragment.
To your Fragment
// sending intent to onNewIntent() of MainActivity
Intent intent = new Intent(getActivity(), MainActivity.class);
intent.putExtra("transparent_nav_changed", true);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
And to your OnNewIntent() of the Activity you would like to restart.
// recreate activity when transparent_nav was just changed
if (getIntent().getBooleanExtra("transparent_nav_changed", false)) {
finish(); // finish and create a new Instance
Intent restarter = new Intent(MainActivity.this, MainActivity.class);
startActivity(restarter);
}