【问题标题】:Cordova app quits after being at background for a whileCordova 应用程序在后台运行一段时间后退出
【发布时间】:2019-10-17 16:20:09
【问题描述】:

我的 Phonegap/cordova 应用程序在按下主页按钮时进入后台(暂停状态)。在几分钟内,当点击我的应用程序图标时,它会快速恢复(即,当它进入后台时在同一个屏幕上)。但是如果经过较长时间(例如,几十分钟?),当我点击图标时,应用程序将作为第一次启动(例如,从启动页面开始,加载后进入 index.html)。

如何防止应用在长时间置于后台时存在?在这种情况下,我不希望用户等待很长时间(我覆盖了后退按钮侦听器,因此用户实际上可以以这种方式退出应用程序)。

我不确定是否需要任何“后台服务”插件,因为我没有后台服务,只是希望它按预期运行。

【问题讨论】:

    标签: javascript android background cordova


    【解决方案1】:

    当您的 Activity 进入 paused state 时,系统会在您的 Activity 上调用 onPause() 方法,该方法允许您停止正在进行的操作,这些操作在暂停时不应继续,或保留任何应永久保存的信息以防用户继续离开您的应用程序。如果用户从暂停状态返回到您的活动,系统将恢复它并调用 onResume() 方法。因此,您可以执行以下操作。

    @Override
    public void onPause() {
        super.onPause();  // Always call the superclass method first
        // save the current configuration or state  here on sharedPref
    }
    
    @Override
    public void onResume() {
        super.onResume();  // Always call the superclass method first
    
        // retrieve the instance configuration or state here from shared pref.
    }
    

    【讨论】:

    • 那么为什么应用程序在短暂进入暂停状态后可以正确恢复,但长时间暂停后自动退出?
    • 如果一个活动被暂停或停止,系统可以通过要求它完成或简单地终止其进程来从内存中删除该活动。当它再次显示给用户时,它必须完全重新启动并恢复到之前的状态。 developer.android.com/reference/android/app/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多