I have an Android Activity with a RelativeLayout and I have implemented the following method to prevent the activity from being recreated on change of Orientation:
You have two ways:
You have chosen the second way. In this case you have to reassign every resource by hand and this approach is not recommended.
IMHO the best way is the first by implementing the method: onRetainNonConfigurationInstance();
Here a complete example on howto use.
Note: the onCreate will be called again but you can adjust your code to prevent long runnning task to be called again during a configuration change
There is a third and easier way that is missing in Francescos answer.
Just add
android:configChanges="keyboardHidden|orientation"
to the activity tag of every activity that you don't want to restart on a change from landscape to portrait mode. This will cause the OS to rebuild your layout without destroying it before the rebuild. The oncreate method will not get called again and you don't loose the state of the activity. But be carefull this will only work if you use the same layout file for portrait and landscape mode.
See this question for more information on this topic