I want to load data from Internet.
While loading data I show a loading indicator. What I want to do when pressing back, I cancel the loading indicator via onC
Simply use:
moveTaskToBack(true);
Basically you want to switch the order of the current background and the previous background. To do this, you can start the previous activity and use the FLAG_ACTIVITY_REORDER_TO_FRONT flag:
Intent intent = new Intent(this, MyPreviousActivity.class);
intent.setFlags(FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
So if you have tasks A, B, C and task C calls startActivity() with activity B, then B will be brought to the front of the activity stack, with the resulting order A, C, B, which is what you were asking for.
See Intent.FLAG_ACTIVITY_REORDER_TO_FRONT