【问题标题】:Cordova/phonegap activity lifecycleCordova/phonegap 活动生命周期
【发布时间】:2015-02-26 12:13:45
【问题描述】:

我正在一个cordova应用程序中为android开发一个地图插件(让我们暂时忘记野外已经有不止一个,并认为这是一个学术问题),the documentation for MapView states

该类的用户必须将包含该视图的Activity或Fragment的所有生命周期方法转发到该类中对应的方法。 [...]

也就是说,我至少需要在我的地图上适当地调用

onResume()
onPause()
onDestroy()
onLowMemory()

方法。有没有办法用 Cordova/Phonegap 做到这一点?请记住,与每个插件一样,我在 CordovaPlugin 的子类中工作,而不是在 Activity 中工作(至少在代码方面我无法触及)。

谢谢!

【问题讨论】:

    标签: android google-maps cordova phonegap-plugins cordova-plugins


    【解决方案1】:

    我真傻:CordovaPlugin 类转发方法:

    public void onPause(boolean multitasking)
    public void onResume(boolean multitasking)
    public void onDestroy()
    

    其中回答了我的问题。您需要做的就是在插件中实现它们,并且至少可以通过这种方式处理生命周期的一部分。

    至于缺少的方法(onCreateonRestart 等),拥有它们是没有意义的,因为当任何插件进入游戏时,cordova 活动已经创建。

    希望对遇到同样问题的人有所帮助

    【讨论】:

    • 您是否以任何方式注册了这些活动?我已经在我的类中实现了扩展 CordovaPlugin 的方法,但它们没有被调用。
    【解决方案2】:

    稍微澄清一下 Rick77 的回答

    在javascript文件中我们不得不提到

    document.addEventListener("deviceready", onDeviceReady, false);
    document.addEventListener("pause", onPause, false);
    document.addEventListener("resume", onResume, false);
    

    然后编写如下函数

    function onDeviceReady() {
        console.log("onDeviceReady");
    }
    
    function onPause() {
        console.log("onPause");
    }
    
    function onResume() {
        console.log("onResume");
    }
    

    要查看日志,请按照以下步骤操作(查看日志时,将手机连接到电脑并打开应用程序)

    第1步:复制chrome://inspect/#devices并粘贴到chrome中,你会得到类似的页面

    第 2 步:点击检查

    第 3 步: 然后 chrome 会像打开新窗口一样

    我们可以在这里查看日志(右上角(红色标记))

    【讨论】:

    • 这与OP的问题完全无关。他没有问如何通过桥发送回调或绑定 javascript 侦听器。他在询问 Android 生命周期方法。
    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 2013-01-13
    • 2011-12-18
    • 1970-01-01
    • 2019-04-17
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多