They were designed primarily so that you can create “sub-screens” that function like “sub-activities”, inheriting all important lifecycle callbacks such as onCreate() , onActivityResult() , onPermissionResult() , and even more importantly onSaveInstanceState(Bundle bundle); .