Si solo quieres cambiar el fondo no hay que destruir la actividad, volverla a crear, etc.... basta con llamar al setBackground de la vista que quieras, o de la root view si quieres que ocupe toda la ventana. Con getRootView en cualquier vista obtienes su referencia.