iOS后台服务第一次没有运行

时间:2013-10-01 17:02:55

标签: ios titanium appcelerator background-service

我有一个奇怪的错误,iOS中的后台服务在我第一次点击主页按钮时没有启动。

我的代码很简单:

//-- app.js
Ti.App.addEventListener('paused', function(event)
{
    Ti.API.info('paused');
    var bgService = Ti.App.iOS.registerBackgroundService({
       url: 'includes/services/ios_bgservice.js'
    });
});

//-- ios_bgservice.js
Ti.API.warn('bg logout process has begun for iOS');

我的流程是:

  • 在模拟器中编译/启动应用程序
  • 模拟主页按钮(cmd + shift + h)
  • 控制台仅显示“paused”。我应该看到“paused [new line] bg logout process has begun for iOS

如果我通过仪表板再次启动应用程序(不要重新编译),然后点击主页按钮,控制台会显示paused [new line] bg logout process has begun for iOS

这不得不在今年左右的某个地方打破,因为我知道它一直在运作。我还确认在设备上测试时行为是一样的。

其他信息

  • Ti Studio,build:3.1.3.201309132423
  • Ti SDK 3.1.3 GA
  • iOS7 SDK

1 个答案:

答案 0 :(得分:1)

嗯,这很简单。在您的应用程序暂停后,您无法注册Web服务。

您只需编写以下行,当您的应用程序进入暂停状态时,您的服务将自动被触发

var service = null;
if(service != null){
service = Ti.App.iOS.registerBackgroundService({
       url: 'includes/services/ios_bgservice.js'
    });
}

希望这有助于!!!