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

Kuan Yi Ming updated CB-3949:
-----------------------------

    Attachment: Cordova281-debug.apk
    
> 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
>         Attachments: Cordova281-debug.apk
>
>
> If installing an app via sideloading on Android and opening it immediately 
> after install via package installer, going through several pages, then 
> pressing Home and later resuming the app later via opening the app from the 
> may break the page sequence by creating a new CordovaActivity instance on top 
> of the previous one.
> 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 (not 
> the Recent Apps list).
> # 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, 
> instead of returning to page2.html which is where the user last was)
> # Pressing
> 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. 
> Some bugs filed on Android's issue tracker suggest this can happen by 
> clicking 'Open' on apps freshly installed from the Play Store too.
> This probably is an Android issue with the package installer (probably due to 
> the package installer calling a non-standard intent) and not PhoneGap, but 
> appears to be fixed by using singleTop as the activity launch mode, or 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 isn't the root activity. Clearing it 
> and returning to the root activity.");
>                   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

Reply via email to