即使在Android应用程序切换到后台模式后,也要定期调用函数

时间:2019-04-16 10:10:26

标签: android sapui5 sap hybrid-mobile-app

我正在开发SAPUI5 Hybrid移动应用程序,我想通过调用刷新函数来同步数据(即使该应用程序处于后台模式或该设备已锁定)。我该如何实现?

我尝试使用

  1. 暂停(设备就绪事件)-问题是,当应用程序进入暂停状态时,首先检查互联网连接以执行刷新,但是由于设备离线,它失败,我需要打开互联网然后继续运行该应用程序,然后将其放回暂停位置,以便成功工作。

  2. cordova-plugin-background-fetch-无效。

  3. cordova-plugin-background-mode-fixed-在将应用程序置于后台模式时仅“一次”起作用。

我对“ cordova-plugin-background-fetch”使用了以下命令,

var BackgroundFetch = window.BackgroundFetch;
var fetchCallback = function() {
    console.log('[js] BackgroundFetch event received');

    store.flush(sap.hybrid.flushStoreCallback, sap.hybrid.errorCallback, null, sap.hybrid.progressCallback);

    BackgroundFetch.finish();
  };
var failureCallback = function(error) {
    console.log('- BackgroundFetch failed', error);
  };
BackgroundFetch.configure(fetchCallback, failureCallback, {
    minimumFetchInterval: 15, // <-- default is 15
    stopOnTerminate: false,   // <-- Android only
    startOnBoot: true,        // <-- Android only
    forceReload: true         // <-- Android only
  });

将以下内容用于“暂停”监听器事件

document.addEventListener("pause", function () {
store.flush(sap.hybrid.flushStoreCallback, sap.hybrid.errorCallback, null, sap.hybrid.progressCallback);
}, false);

将以下内容用于“ cordova-plugin-background-mode-fixed”

cordova.plugins.backgroundMode.enable();
cordova.plugins.backgroundMode.on('activate', function () {
store.flush(sap.hybrid.flushStoreCallback, sap.hybrid.errorCallback, null, sap.hybrid.progressCallback);
});

基本上,我想对我的设备进行选型并每天刷新一次数据。如果还有其他方法可以实现,请帮助我。

0 个答案:

没有答案