Используйте startActivityForResult
для запуска C, D, E, F Упражнение
public static void start(@NonNull Context context, @NonNull Intent intent) {
context.startActivityForResult(intent, REQUEST_CODE);
}
Вызовите этот метод, когда вы заканчиваете F Activity (Место, которое вы хотите перезапустить C Activity)
public static void finishAct(@NonNull Context context) {
Intent data = new Intent();
data.putExtra("recreateC", true);
context.setResult(RESULT_OK, data);
context.finish();
}
В активах E и D
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// handle result
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
finishAct(this)
}
}
В C Активность
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// handle result
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
finishAct(this)
// todo start C Activity again
}
}