【问题标题】:Implement service on Firefox OS在 Firefox OS 上实现服务
【发布时间】:2014-05-22 11:48:05
【问题描述】:

我对 Firefox OS 还是很陌生。目前,我正在努力实现某种在后台侦听geolocation 更新的服务。 如果有很多应用程序同时运行,我的似乎被杀死了。在使用 App Manager 进行调试时,它会静默断开连接。

我尝试了 requestWakeLock('cpu') 和使用 Worker(如 this thread 中所建议的那样)但没有成功。 后台服务 API 尚未实现,仅适用于经过认证的应用。

我知道有像ConnectA2 这样的未经认证的应用程序一直保持活跃,所以必须有办法。

谁能给我一个提示?

【问题讨论】:

    标签: firefox mozilla firefox-os


    【解决方案1】:

    Firefox OS 不会故意为您提供在后台运行服务的方法,因为我们所针对的设备的类(例如,128MB 设备)将无法支持在后台持续运行应用程序背景。

    不过,还有其他实现这些服务的方法。例如,您可以使用mozAlarm API 以在特定时间间隔唤醒您的应用程序,或者您可以使用SimplePush API 在远程服务器启动事件时通知您的应用程序。

    【讨论】:

      【解决方案2】:

      您可以使用Alarm API 来防止您的应用在后台被杀死。 闹钟会以固定的时间间隔唤醒应用。

      var alarmId = 0;
      function setAlarm() {
          function onAlarmAdded() {
              alarmId = request.result;
          }
          var alarmDate = new Date(Date.now() + (60 * 1000)); // 60 seconds later
          var request = navigator.mozAlarms.add(alarmDate, "ignoreTimezone");
          request.onsuccess = onAlarmAdded;
      }
      function setHandler() {
          function onAlarm(mozAlarm) {
              // set next alarm
              setAlarm();
          }
          navigator.mozSetMessageHandler("alarm", onAlarm);
      }
      function startAlarm() {
          setHandler();
          setAlarm();
      }
      function stopAlarm() {
          navigator.mozAlarms.remove(alarmId);
      }
      

      【讨论】:

        猜你喜欢
        • 2013-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-19
        • 2014-06-08
        • 2012-03-28
        • 1970-01-01
        相关资源
        最近更新 更多