Take a look at the Activity Lifecyle here: http://developer.android.com/reference/android/app/Activity.html
What you're doing is actually redundant with what is supposed to automatically happens on an activity restart.
It sounds like you have some possible design issues with how you've defined your main activity and how you're extending it. If I could make a suggestions, I would say that if you have things in an activity that will be common among ALL your activities, put those things in a "parent" activity that you can extend. The way you have your "main" activity defined now seems to have specifics in it that don't lend itself to other activities. So, once you set up your "parent" activity class, extend it to create the "main" activity and put the "fade-in" logic there.
Ultimately, you should be able to call super.onRestart without any detrimental results.