Problem with Android back button

I am having an issue when clicking the Android back button in that if use the Android back button to navigate back to my parent page the next time I call Location.back() I am taken to the child.

So my page structure is: -

Item List -> Item Detail -> Gallery -> Add Image

If I advance through the navigation routes to the Add Image page, then I return to the Gallery page by calling the this.location.back(); on the injected Location service.

Once on the Gallery Page page if I return to the Item Detail page using this.location.back(); everything works, however if I click the back button on the Android device I am returned to the Item Detail page but the next call to this.location.back() takes me to the Gallery page not the Item List page.

Everything works perfectly in the browser, has anybody got any ideas/thoughts on this issue. Incidentally when I click the Android back button it fails to go back any further :confused:

I have found a solution that seems to work with the Android back button which involves intercepting the hardware initiated event using the following code within the AppComponent: -

            this.platform.backButton.subscribeWithPriority(999, () => {
                this.location.back();
            });