You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Tony Homer (JIRA)" <ji...@apache.org> on 2015/04/07 05:14:12 UTC

[jira] [Commented] (CB-8684) support onStart/onStop lifecycle events in plugins for Android

    [ https://issues.apache.org/jira/browse/CB-8684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14482504#comment-14482504 ] 

Tony Homer commented on CB-8684:
--------------------------------

[~agrieve] - I made [a rough cut of these changes|https://github.com/tony--/cordova-android/commit/be04785f2ce8cbf3f2f96398641af270db12b76c].  The next step I planned to do was to run the existing tests, then add some new tests to cover my handy dandy new onStart/onStop event dispatching.  Unfortunately I can't figure out how to make the tests work.  I saw [the warning in the README.md|https://github.com/apache/cordova-android/blame/master/test/README.md#L24], but I thought maybe I could make them work in kitkat+ since it seemed like it might have to do with the thread rules for the webview in kitkat+. I followed the instructions for setting up gradle, ran the test app and got an error about the Activity plugin not being found.  This doesn't seem kitkat related - it just seems like the plugin is not present in cordova_plugins.js, so is not getting initialized.  Are there some missing instructions or am I completely missing something?  I'll keep looking on my own, but any pointers would be helpful!  I'll also send a message to the dev list if I don't hear back in the next day or so.  Thanks in advance!

> support onStart/onStop lifecycle events in plugins for Android
> --------------------------------------------------------------
>
>                 Key: CB-8684
>                 URL: https://issues.apache.org/jira/browse/CB-8684
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: Android
>            Reporter: Tony Homer
>            Assignee: Tony Homer
>
> Enable plugins to handle onStart/onStop lifecycle events in Android implementation.  Currently plugin authors that need this feature instruct their users to modify the CordovaActivity in their project in order to support these lifecycle events.
> For example, the Flurry plugin instructions direct users to override
> onStart and onStop in their activity in order to handle onStop:
> https://github.com/Initsogar/cordova-flurry
> There are other analytics plugins that want to know about onStart/onStop
> instead of onPause/onResume.
> This change will enable native Android support only - there will be no corresponding Cordova lifecycle events generated because these events are platform specific.  
> In addition to the Android platform change, a "quirk"-type notation should be added to the Android Plugin Development guide, along with possible update to the example code provided there.
> For reference, here is the conversation from the dev mailing list between [~agrieve] and [~tony--]:
> {quote}
> On 3/9/15, 12:05 PM, "Andrew Grieve" <ag...@chromium.org> wrote:
> >I see no reason we couldn't add onStart / onStop.
> >
> >As an aside, if you're okay with supporting only ICS+, you can use
> >Application.registerActivityLifecycleCallbacks() as a work-around.
> >
> >
> >On Mon, Mar 9, 2015 at 11:23 AM, Homer, Tony <to...@intel.com>
> wrote:
> >
> >> I assumed that this must have been discussed at some point, but I
> >>couldn¹t
> >> find anything in the list archives or JIRA.
> >> I¹m guessing that there might be some practical issues with
> >>onStart/onStop
> >> and plugin loading timing, but it seems like if there are issues like
> >>this
> >> they could be addressed somehow.
> >>
> >> I¹m asking about this because we have an internal request to enable apps
> >> to override onStart/onStop in the Intel XDK build system in order to
> >> support plugins that want to handle onStart/onStop.
> >> My initial response was ³why not use onResume/onPause², but some plugin
> >> authors apparently believe that onStart/onStop are the lifecycle events
> >> they need.
> >>
> >> For example, the Flurry plugin instructions direct users to override
> >> onStart and onStop in their activity in order to handle onStop:
> >> https://github.com/Initsogar/cordova-flurry
> >> There are other analytics plugins that want to know about onStart/onStop
> >> instead of onPause/onResume.
> >> Obviously it is possible to modify your activity in order to do this in
> >> your project, but if this capability is important, it should be possible
> >> without abandoning the Cordova Way.
> >>
> >> So I was wondering what you guys think?
> >> onPause/onResume should be good enough for anyone?
> >> onStart/onStop are edge cases that users need to handle by modifying
> >>their
> >> activity?
> >> onStart/onStop cannot be handled by plugins due to timing issues?
> >>
> >> Thanks!
> >> Tony
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org