Phonegap 3.3 / 3.4 - 事件触发问题android

时间:2014-06-11 10:45:32

标签: android events cordova listeners

当我关闭(阅读:发送到后台)应用程序时,不会调用“暂停”,当我重新加载应用程序时,不会调用“恢复”。

非常感谢任何有关让它发挥作用的提示!

<script type="text/javascript">
    $(document).ready(function() {
    onLoad();
    });      
</script>   
<script type="text/javascript">
    // Wait for device API libraries to load
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    };

    // device APIs are available
    //
    function onDeviceReady() {
        document.addEventListener("resume", onResume, false);
        document.addEventListener("pause", onPause, false);
        appStartUp();
    };

    // Handle the resume event
    //
    function onResume() {
        setTimeout(function() {
        alert("onResume");
        }, 0);
    };
    // Handle the pause event
    //
    function onPause() {
        setTimeout(function() {
        alert("onPause");
        }, 0);
    };
</script>

好的,除此之外,应用程序似乎每次从一开始就重新加载,因此恢复和暂停不会做任何事情,因为应用程序再次加载。

我已经将android:launchMode =“singleTask”添加到了android清单(通过config.xml)。但它仍然会再次加载。

2 个答案:

答案 0 :(得分:0)

如果您关闭应用,则不会收到pause事件。

当您的应用投放到后台时,系统会触发pause事件。

如果您现在打开该应用,则会收到resume事件。

通常按后退按钮将退出您的应用。如果您使用 home 按钮,则可以将应用程序置于后台。

答案 1 :(得分:0)

这对我来说是Jellybean的诀窍:

它仍然不适用于KitKat ......

<script type="text/javascript">

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

function onDeviceReady() {
alert("device ready");
appStartUp();
};

// Handle the resume event
//
function onResume() {
setTimeout(function() {
alert("onResume");
}, 0);
};
// Handle the pause event
//
function onPause() {
setTimeout(function() {
alert("onPause");
}, 0);
};   
</script>