【问题标题】:Titanium - Not able to stop iOs background processTitanium - 无法停止 iOs 后台进程
【发布时间】:2014-02-26 11:50:52
【问题描述】:

我已经为我的应用实现了后台服务。我正在使用它通过位置服务获取用户当前位置。

我将解释我实现这个的方式 - “XYZ.js” - 用户距离显示的屏幕。添加以下代码来设置注册后台服务-

var iService = Ti.App.iOS.registerBackgroundService({
            url : 'BackgroundService.js'
        });

一旦应用程序进入后台,后台服务就会启动并收集用户位置。当应用程序出现在前台时,我触发了以下事件 -

Ti.App.fireEvent('stopBackgroundService');

在“BackgroundService.js”中-有监听器-

Ti.App.addEventListener('stopBackgroundService',function(){
    Ti.App.currentService.stop();
});

但在完成所有位置基础工作后,当我移动到其他屏幕并将应用程序置于后台时,位置服务再次启动。由于哪个设备的电池耗尽。

有什么建议吗?提前致谢。

【问题讨论】:

    标签: ios geolocation titanium titanium-mobile background-process


    【解决方案1】:

    玩过之后,我通过以下方式解决了它 - 1.创建全局变量为

    `Ti.App.BackgroundService`
    
    1. 将服务分配给上述变量
    2. 当基于位置服务的工作完成时,停止后台服务并将其注销为

      Ti.App.BackgroundService.stop();

    它按预期工作。

    谢谢

    【讨论】:

      【解决方案2】:

      要停止后台进程,您只需调用Titanium.App.iOS.BackgroundService.unregister()

      【讨论】: