Finish old activity and start a new one or vice versa
When you do startActivity(), all that does is post your intent in a queue of events. The actual starting of the activity happens asynchronously in the near future. So I don't see a big difference between the two.
The animation is clearly different (at least on 4.1 onwards). Calling finish()
first starts to fade away the first activity earlier and you can briefly see a black background before the new activity fades in. Calling startActivity()
first fades in the new activity on top of the old one and the black background is not visible.