Der code müsste immer ausgeführt werden, allerdings bevor die zweite Activity gestartet wird. Ein StartActivity hört jetzt nicht sofort mit allem auf und startet die neue Activity, sondern es wird einfach eine Nachricht in die MessageQueue gestellt, dass die neue Activity möglichst bald gestartet werden soll. Siehe Dokumentation von StartActivity: "The target activity will be started once the program is free to process its message queue."
Was allerdings passiert, wenn man direkt nach dem StartActivity ein DoEvents einbaut, bin ich mir auch nicht sicher. Müsste man mal ausprobieren.