You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Joe Bowser (JIRA)" <ji...@apache.org> on 2013/06/20 20:46:22 UTC

[jira] [Updated] (CB-3949) Add code fix to broken activity sequence

     [ https://issues.apache.org/jira/browse/CB-3949?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joe Bowser updated CB-3949:
---------------------------

    Priority: Minor  (was: Major)
    
> Add code fix to broken activity sequence
> ----------------------------------------
>
>                 Key: CB-3949
>                 URL: https://issues.apache.org/jira/browse/CB-3949
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 2.7.0, 2.8.0
>            Reporter: Kuan Yi Ming
>            Assignee: Joe Bowser
>            Priority: Minor
>
> If installing an app via sideloading on Android, going through several pages, then pressing Home and later resuming the app later may break the page sequence.
> Tested on a Galaxy Nexus, Android 4.2
> Steps to replicate:
> # Copy APK over to phone storage and install it.
> # Click 'Open' when the package installer has installed the app, instead of clicking 'Done'
> # Open several pages (e.g. index.html -> page1.html -> page2.html)
> # Press Home to pause the app, then reopen the app from the app drawer.
> # The app will relaunch as if it were a new activity instance (showing splashscreen again if configured, and adds index.html to the page sequence)
> These steps can't be replicated if the app was originally opened in the app drawer, a shortcut in the homescreen, or launched via Eclipse's Run button. 
> This probably is an Android issue and not PhoneGap, but appears to be fixed by adding code before calling super.loadUrl() in the activity to check for Intent anomalies:
> {code:java}
>         Intent intent = getIntent();
>         String intentAction = intent.getAction();
>         if (!isTaskRoot() && intent.hasCategory(Intent.CATEGORY_LAUNCHER) && intentAction != null) {
>         	if(intentAction.equals(Intent.ACTION_MAIN)) {
> 	            Log.d("Cordova", "This activity should be the root. Finish it first before launching.");
> 	            finish();
> 	            return;
>         	}
>         }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira