transistorsoft / cordova-plugin-background-fetch

Implements background fetching of data.
MIT License
296 stars 80 forks source link

finished never been called #67

Closed warbadev closed 5 years ago

warbadev commented 7 years ago

hi, first thanks for ur plugin i really appreciate ur hard work on it i tried this plugin with ios simulator where i needed to schedule local notification first time fires nicely and the local notification was scheduled perfectly but when i tried to do it again i got this message in xcode console

CDVBackgroundFetch AppDelegate received fetch event
2017-07-10 21:46:16.387 MyApp[28009:17544106] - TSBackgroundFetch performFetchWithCompletionHandler
2017-07-10 21:46:16.387 MyApp[28009:17544106] - CDVBackgroundFetch Rx Fetch Event
2017-07-10 21:50:34.740 MyApp[28009:17544106] CDVBackgroundFetch AppDelegate received fetch event
2017-07-10 21:50:34.740 MyApp[28009:17544106] - TSBackgroundFetch performFetchWithCompletionHandler
2017-07-10 21:50:34.741 MyApp[28009:17544106] Warning: Application delegate received call to -application:performFetchWithCompletionHandler: but the completion handler was never called.
2017-07-10 21:50:34.741 MyApp[28009:17544106] - CDVBackgroundFetch Rx Fetch Event

what i can understand here that it might the finish() function wasnt called even though i put it inside configure function

if u can help me with this issue pls

christocracy commented 7 years ago

This is really but did you find the problem?

faldunate commented 7 years ago

@warbadev I have the same problem, did you find any solutions?

mattychen commented 6 years ago

@faldunate @warbadev Were you able to resolve this issue?

I was able to get it firing the first time fine, but subsequent fetch events failed.

christocracy commented 6 years ago

Show me your code.

mattychen commented 6 years ago

Hi @christocracy, thanks for taking a look. This is my code inside my app.component.ts:

Nothing really out of the ordinary here, I've just followed the structure provided by Ionic. I've also tried w/o using LocalNotifications but the same problem persists.

2018-01-15 19:26:12.356967+0800 MyApp[20208:2449509] CDVBackgroundFetch AppDelegate received fetch event
2018-01-15 19:26:12.357102+0800 MyApp[20208:2449509] [TSBackgroundFetch performFetchWithCompletionHandler]
2018-01-15 19:26:12.357231+0800 MyApp[20208:2449509] - CDVBackgroundFetch Rx Fetch Event
2018-01-15 19:26:12.364096+0800 MyApp[20208:2449509] Background Fetch start
2018-01-15 19:26:12.365401+0800 MyApp[20208:2449509] [TSBackgroundFetch finish]: CDVBackgroundFetch
2018-01-15 19:26:12.365489+0800 MyApp[20208:2449509] [TSBackgroundFetch doFinish] Complete, UIBackgroundFetchResult: 0, responses: 1
2018-01-15 19:26:12.544003+0800 MyApp[20208:2449509] scheduling a notification
2018-01-15 19:56:05.869467+0800 MyApp[20208:2449509] CDVBackgroundFetch AppDelegate received fetch event
2018-01-15 19:56:05.869603+0800 MyApp[20208:2449509] [TSBackgroundFetch performFetchWithCompletionHandler]
2018-01-15 19:56:05.869683+0800 MyApp[20208:2449509] - CDVBackgroundFetch Rx Fetch Event
2018-01-15 19:56:32.747767+0800 MyApp[20208:2449509] CDVBackgroundFetch AppDelegate received fetch event
2018-01-15 19:56:32.747956+0800 MyApp[20208:2449509] [TSBackgroundFetch performFetchWithCompletionHandler]
2018-01-15 19:56:32.748054+0800 MyApp[20208:2449509] Warning: Application delegate received call to -application:performFetchWithCompletionHandler: but the completion handler was never called.
2018-01-15 19:56:32.748167+0800 MyApp[20208:2449509] - CDVBackgroundFetch Rx Fetch Event
 constructor(
    private platform: Platform, private statusBar: StatusBar, private splashScreen: SplashScreen,
    private authService: AuthService, private localNotifications: LocalNotifications,
    private afDB: AngularFireDatabase, private backgroundFetch: BackgroundFetch
  ) {

    platform.ready().then(() => {

      statusBar.styleDefault();
      splashScreen.hide();

      let authState = authService.currentAuthObservable;
      this.rootPage = 'HomePage';

      authState.subscribe((authObj) => {

        if (authObj == null){
          console.log('User is not authenticated in the App: setting root to Home');
          this.rootPage = 'HomePage';
        }
        else {
          console.log('The app is logged in from the app component, root is set to Tabs');
          this.uid = authObj.uid;
          this.rootPage = 'Tabs';
          let refString: string = 'users/' + this.uid;

          this.userDataDisposable = this.afDB.object(refString).valueChanges()
            .subscribe((userData) => {
              this.profile = userData; 
          });
        }
      });

      const config: BackgroundFetchConfig = {
        stopOnTerminate: false, // Set true to cease background-fetch from operating after user "closes" the app. Defaults to true.
      };
      this.backgroundFetch.configure(config).then(this.fetchCallback);
    });
  }

  fetchCallback = () => {
    console.log('Background Fetch start');

    if (this.profile) {
      const chatKey = this.createChatKey;
      console.log('Background Fetch detected patient userType')
      this.chatRoomDisposable = this.afDB.object('chats/' + chatKey).query.ref.once('value')
        .then((data) => {
          let messageObj = data.val();
          let lastReadTimeStamp = messageObj[this.uid]['lastRead'];
          let timestamp = messageObj['timestamp'];
          let sender = messageObj['lastSender'];
          let message = messageObj['lastMessage'];
          if (sender != this.uid) {
            if (lastReadTimeStamp != timestamp) {
              this.scheduleNotification(messageObj);
            }
          }
        })
    }
    this.backgroundFetch.finish();
  }

  get createChatKey(){
     return ''
  }

  scheduleNotification(messageObj){
    console.log('scheduling a notification');
    let message = messageObj.lastMessage;
    let sender = messageObj.lastSender;

    this.localNotifications.schedule({
      id: 1,
      title: sender,
      text: message,
    });
  }

Package.json:

{
  "name": "",
  "version": "0.0.0",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "lint": "ionic-app-scripts lint",
    "prettier": "prettier --write",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve",
    "test": "karma start ./test-config/karma.conf.js",
    "test-ci": "karma start ./test-config/karma.conf.js --single-run",
    "test-coverage": "karma start ./test-config/karma.conf.js --coverage",
    "e2e": "npm run e2e-update && npm run e2e-test",
    "e2e-test": "protractor ./test-config/protractor.conf.js",
    "e2e-update": "webdriver-manager update --standalone false --gecko false"
  },
  "dependencies": {
    "@angular/animations": "^4.0.0",
    "@angular/common": "4.1.0",
    "@angular/compiler": "4.1.0",
    "@angular/compiler-cli": "4.1.0",
    "@angular/core": "^4.1.0",
    "@angular/forms": "4.1.0",
    "@angular/http": "4.1.0",
    "@angular/platform-browser": "4.1.0",
    "@angular/platform-browser-dynamic": "4.1.0",
    "@ionic-native/background-fetch": "^4.5.2",
    "@ionic-native/barcode-scanner": "^4.4.2",
    "@ionic-native/ble": "^3.14.0",
    "@ionic-native/core": "^4.5.2",
    "@ionic-native/local-notifications": "^4.4.2",
    "@ionic-native/splash-screen": "3.7.0",
    "@ionic-native/status-bar": "3.7.0",
    "@ionic/storage": "^2.0.1",
    "angularfire2": "^5.0.0-rc.4",
    "chart.js": "^2.5.0",
    "cordova-ios": "4.5.4",
    "cordova-plugin-background-fetch": "^5.1.1",
    "cordova-plugin-badge": "^0.8.5",
    "cordova-plugin-ble-central": "^1.1.4",
    "cordova-plugin-compat": "^1.1.0",
    "cordova-plugin-console": "^1.1.0",
    "cordova-plugin-device": "1.1.4",
    "cordova-plugin-ionic-webview": "^1.1.11",
    "cordova-plugin-local-notification": "^0.9.0-beta.1",
    "cordova-plugin-splashscreen": "~4.0.1",
    "cordova-plugin-statusbar": "2.2.2",
    "cordova-plugin-whitelist": "1.3.1",
    "cordova-sqlite-storage": "^2.0.4",
    "firebase": "^4.5.0",
    "ionic-angular": "3.2.0",
    "ionic-plugin-keyboard": "~2.2.1",
    "ionicons": "3.0.0",
    "moment": "^2.19.2",
    "ng2-charts": "^1.5.0",
    "phonegap-plugin-barcodescanner": "^7.0.0",
    "promise-polyfill": "7.0.0",
    "rxjs": "5.1.1",
    "sw-toolbox": "3.6.0",
    "web-animations-js": "^2.3.1",
    "zone.js": "0.8.10"
  },
  "devDependencies": {
    "@angular/cli": "^1.6.0",
    "@ionic/app-scripts": "^1.3.7",
    "@types/jasmine": "^2.8.2",
    "@types/node": "^8.0.58",
    "angular2-template-loader": "^0.6.2",
    "codecov": "^3.0.0",
    "html-loader": "^0.5.1",
    "istanbul-instrumenter-loader": "^3.0.0",
    "jasmine": "^2.8.0",
    "jasmine-core": "^2.8.0",
    "jasmine-spec-reporter": "^4.2.1",
    "karma": "^1.7.1",
    "karma-chrome-launcher": "^2.2.0",
    "karma-coverage-istanbul-reporter": "^1.3.0",
    "karma-jasmine": "^1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "karma-mocha-reporter": "^2.2.5",
    "karma-remap-istanbul": "^0.6.0",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-webpack": "^2.0.6",
    "null-loader": "^0.1.1",
    "protractor": "^5.2.2",
    "ts-loader": "^3.2.0",
    "ts-node": "^4.0.1",
    "tslint": "^5.8.0",
    "tslint-eslint-rules": "^4.1.1",
    "typescript": "2.2.1"
  },
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-statusbar",
    "cordova-plugin-console",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "ionic-plugin-keyboard"
  ],
  "cordovaPlatforms": [
    "ios",
    {
      "platform": "ios",
      "version": "",
      "locator": "ios"
    }
  ],
  "description": "",
  "cordova": {
    "plugins": {
      "cordova-plugin-ble-central": {
        "BLUETOOTH_USAGE_DESCRIPTION": " "
      },
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-whitelist": {},
      "ionic-plugin-keyboard": {},
      "cordova-sqlite-storage": {},
      "cordova-plugin-ionic-webview": {},
      "cordova-plugin-local-notification": {},
      "phonegap-plugin-barcodescanner": {
        "CAMERA_USAGE_DESCRIPTION": " "
      },
      "cordova-plugin-background-fetch": {},
      "cordova-plugin-console": {}
    },
    "platforms": [
      "ios"
    ]
  }
}
christocracy commented 6 years ago

Check your scope in fetchCallback

Don't you want to this.fetchCallback.bind(this)?

this.backgroundFetch.configure(config).then(this.fetchCallback.bind(this));
mattychen commented 6 years ago

@christocracy Hi, arrow functions in Typescript solve this scope issue. To double check I did also rewrite this with your suggestion, but it did not work.

Previously, I also tried just writing a simple console log function with the same error previously.

this.backgroundFetch.configure(config).then(()=>console.log('callback called!'));
[TSBackgroundFetch performFetchWithCompletionHandler]
Warning: Application delegate received call to -application:performFetchWithCompletionHandler: but the completion handler was never called.

Thank you for taking a look!

christocracy commented 6 years ago

Warning: Application delegate received call to -application:performFetchWithCompletionHandler: but the completion handler was never called.

You are not calling BackgroundFetch.finish()

ferreyes commented 6 years ago

Hey @mattychen, how did you solve it? I'm having the same problem, only the first fetch works and then I got the same message than your first post.

Thanks!

christocracy commented 6 years ago

@ferreyes Are you executing BackgroundGeolocation#finish in your fetch callback?

mattychen commented 6 years ago

@ferreyes @christocracy unfortunately I never got it to work, even when I called BackgroundFetch.finish(), so I did something roundabout...feel free to comment and let me know if you find a solution

I call backgroundFetch.stop() on platform.resume when the app is being resumed and being used

and then I call backgroundFetch.configure when the app is paused. This actually re-initiates the backgroundFetch module each time the app is resumed/ paused.


    platform.resume.subscribe(()=>{
      backgroundFetch.status().then(val=>console.log(val))
      backgroundFetch.stop();
    })

    platform.pause.subscribe(() => {
      backgroundFetch.configure(config)
        .then(()=> {
          console.log('Background fetch callback called');
          this.localNotifications.schedule({
            title: 'test',
            text: 'test msg'
          })
         // Fetch activity coded here
          this.backgroundFetch.finish();
        })
        .catch(e => console.log('Error initializing background fetch', e));
    }
    )
pierrebiazotto commented 6 years ago

Hi @mattychen , take a look at my code. It works well in my project.

platform.ready().then(() => {
      const config: BackgroundFetchConfig = {
        stopOnTerminate: false, // Set true to cease background-fetch from operating after user "closes" the app. Defaults to true.
      };
      console.log("Haha");
      this.backgroundFetch.configure(config).then(this.fetchCallback.bind(this));
    });

And

fetchCallback = () => {
    console.log('Background Fetch start');
    let message = "My test";
    this.scheduleNotification(message);
    this.backgroundFetch.finish();
  }
christocracy commented 6 years ago

@mattychen Don't do what you're doing in pause / resume. Just do it once in ready.

ferreyes commented 6 years ago

Hi @pierrebiazotto, I just replaced my code by yours and now I got a different error message but the behavior is the same, I can only simulate the background fetch process once, then I receive this error:

2018-04-18 15:08:37.132397-0500 1000_ mda[490:56014] CDVBackgroundFetch AppDelegate received fetch event
2018-04-18 15:08:37.132474-0500 1000_ mda[490:56014] [TSBackgroundFetch performFetchWithCompletionHandler]
2018-04-18 15:08:37.132492-0500 1000_ mda[490:56014] - CDVBackgroundFetch Rx Fetch Event
2018-04-18 15:08:37.162028-0500 1000_ mda[490:56014] Background Fetch start
2018-04-18 15:08:37.162809-0500 1000_ mda[490:56014] My test
2018-04-18 15:08:37.163672-0500 1000_ mda[490:56014] [TSBackgroundFetch finish]: CDVBackgroundFetch
2018-04-18 15:08:42.224850-0500 1000_ mda[490:56014] [TSBackgroundFetch doFinish] Complete, UIBackgroundFetchResult: 0, responses: 1
2018-04-18 15:08:53.423502-0500 1000_ mda[490:56014] CDVBackgroundFetch AppDelegate received fetch event
2018-04-18 15:08:53.423811-0500 1000_ mda[490:56014] [TSBackgroundFetch performFetchWithCompletionHandler]
2018-04-18 15:08:53.423944-0500 1000_ mda[490:56014] - CDVBackgroundFetch Rx Fetch Event
2018-04-18 15:08:53.538463-0500 1000_ mda[490:56069] TIC Read Status [1:0x1c0171640]: 1:57
2018-04-18 15:08:53.539723-0500 1000_ mda[490:56069] TIC Read Status [1:0x1c0171640]: 1:57
2018-04-18 15:08:53.541360-0500 1000_ mda[490:56069] TIC Read Status [2:0x1c4175300]: 1:57
2018-04-18 15:08:53.541416-0500 1000_ mda[490:56069] TIC Read Status [2:0x1c4175300]: 1:57
2018-04-18 15:08:53.542091-0500 1000_ mda[490:56069] TIC Read Status [3:0x1c0176200]: 1:57
2018-04-18 15:08:53.542140-0500 1000_ mda[490:56069] TIC Read Status [3:0x1c0176200]: 1:57
2018-04-18 15:15:40.614667-0500 1000_ mda[490:56014] CDVBackgroundFetch AppDelegate received fetch event
2018-04-18 15:15:40.614909-0500 1000_ mda[490:56014] [TSBackgroundFetch performFetchWithCompletionHandler]
2018-04-18 15:15:40.615049-0500 1000_ mda[490:56014] Warning: Application delegate received call to -application:performFetchWithCompletionHandler: but the completion handler was never called.
2018-04-18 15:15:40.615248-0500 1000_ mda[490:56014] - CDVBackgroundFetch Rx Fetch Event
christocracy commented 6 years ago

BackgroundFetch does not support a Promise API. There's no possible way this could work (unless you're using some sort of wrapper):

this.backgroundFetch.configure(config).then(this.fetchCallback.bind(this));

Don't get cute, just follow the example in README:

BackgroundFetch.configure(() => {
  console.log('- Fetch received');
  BackgroundFetch.finish();
}, (error) => {
  console.log('- Fetch error');
}, {
        minimumFetchInterval: 15, // <-- default is 15
        stopOnTerminate: false   // <-- Android only        
    });  
sta55en commented 5 years ago

I'm seeing something similar, where when I watch the log through chrome://inspect, I can see my web requests in a 'pending' state, but finish doesn't seem to be called.

Is it possible that my Google Nexus is blocking web requests as part of some battery saving attempt? I've enabled unlimited data, disabled battery saving for the app and I'm on WiFi.

I've spent 3 days trying to figure this out. It works perfectly on iOS, but Android seems to be the culprit. Not the plugin's fault, I'm sure.

christocracy commented 5 years ago

You’re not observing $ adb logcat, the device’s system logs?

sta55en commented 5 years ago

Thanks for the swift reply. I am.

02-22 22:56:22.850 14099 14099 D TSBackgroundFetch: - Background Fetch event received 02-22 23:03:44.135 14099 14279 D TSBackgroundFetch: - finish 02-22 23:03:44.135 14099 14279 D TSBackgroundFetch: - jobFinished

The finish and jobFinished only appeared after I reopened the app.

Could it be that I need to manually grant the application something like 'android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND' permission? I'm not an Android guru, so I'm not even sure that is the right permission.

It looks like the request sits as a pending web request until I reopen the app. The second it opens up, the request runs against my back-end and I get results in < 100ms.

christocracy commented 5 years ago

I mean the raw, unfiltered adb logcat so you can see the system logs, not just those from TSBackgroundFetch

sta55en commented 5 years ago

No. I've only been watching the TSBackgroundFetch log. Is there some sort of way to filter the logs to only show what would be relevant to debugging?

I saw the text below in the log just now and it looks suspicious, but I don't know what it means.

02-22 23:10:16.165 577 1006 E QC-QMI : linux_qmi_qmux_io_wake_lock: Err in writing wakelock=qmuxd_port_wl_0, error [1:Operation not permitted] 02-22 23:10:16.165 577 1006 E QC-QMI : linux_qmi_qmux_io_wake_unlock: Err in writing wakelock=qmuxd_port_wl_0, error [1:Operation not permitted]

christocracy commented 5 years ago

Did you google "linux_qmi_qmux_io_wake_lock: Err in writing wakelock"?

Also see http://dontkillmyapp.com for your device manufacturer.

sta55en commented 5 years ago

I did. I saw a bunch of references to it, but no real explanation of what it is.

I did check http://dontkillmyapp.com and the devices I'm testing on are Nexus 6P, Samsung Galaxy 7, J1 (which I totally understand might not work since it is a horrible device) and then a bunch of emulators.

christocracy commented 5 years ago

Are you using a Promise and await with your Http request?

sta55en commented 5 years ago

I've tried using a standard promise created from an observable via toPromise() which produces a normal promise.

This is Ionic 3, so I've also tried using an observable and subscribing to it. Do you think that could be causing the issue?

What do you mean by 'await'? I'm not using any ES6 async functions here. The callback is a stock standard function.

BackgroundFetch.configure(() => {
                this.postLatest().subscribe(
                    () => {
                        logger.info("Heartbeat push completed in background mode.")
                    }, err => {
                        logger.error("Heartbeat push failed in background mode.");
                        logger.error(err);
                    }, () => {
                        logger.info("Completed background mode fetch.");
                        BackgroundFetch.finish();
                    });
            }, (error) => {
                logger.error(error);
            }, {
                    minimumFetchInterval: 15,
                    stopOnTerminate: false,
                    startOnBoot: true,
                    forceReload: true,
                });

That's an example of the code using an observable.

christocracy commented 5 years ago

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

sta55en commented 5 years ago

I've traced the adb logs and this is what I got:

From the log, after we see TSBackgroundFetch: - Background Fetch event received in the TSBackgroundFetch logs:

02-22 23:42:13.617  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : Posting heartbeat...                               │
02-22 23:42:13.617  4713  4713 I chromium: [INFO:CONSOLE(16234)] "Posting heartbeat...", source: http://localhost:8080/build/main.js (16234)                 │
02-22 23:42:13.617  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : Pushing 0 duty status events to server...          │
02-22 23:42:13.618  4713  4713 I chromium: [INFO:CONSOLE(16234)] "Pushing 0 duty status events to server...", source: http://localhost:8080/build/main.js (16│
02-22 23:42:13.618  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : Pushing 21 fixes to server...                      │
02-22 23:42:13.618  4713  4713 I chromium: [INFO:CONSOLE(16234)] "Pushing 21 fixes to server...", source: http://localhost:8080/build/main.js (16234)

The request to the API just sits there and hangs... If I call the code that hits the server from the UI while the app is open, it works 100%.

After we reopen the app, immediately, the request to the server completes. No errors anywhere in the log.

02-22 23:42:38.130   594  4287 D audio_hw_primary: enable_audio_route: usecase(1) apply and update mixer path: low-latency-playback speaker                  │
02-22 23:42:38.130   594  4287 D audio_route: Apply path: low-latency-playback speaker                                                                       │
02-22 23:42:38.157  1217  1217 E BufferItemConsumer: [unnamed-1217-58] Failed to release buffer: Unknown error -1 (1)                                        │
02-22 23:42:38.187  4713  4713 D CordovaActivity: Started the activity.                                                                                      │
02-22 23:42:38.189  4713  4713 D CordovaActivity: Resumed the activity.                                                                                      │
02-22 23:42:38.190  4713  4713 I TSLocationManager: - onResume                                                                                               │
02-22 23:42:38.207  1217  1217 E BufferItemConsumer: [unnamed-1217-59] Failed to release buffer: Unknown error -1 (1)                                        │
02-22 23:42:38.212   594  4287 D audio_hw_primary: out_write: retry previous failed cal level set                                                            │
02-22 23:42:38.280  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.280  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.280  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/vendor.js: Line 62203 : [object Object]                                  │
02-22 23:42:38.281  4713  4713 I chromium: [INFO:CONSOLE(62203)] "[object Object]", source: http://localhost:8080/build/vendor.js (62203)                    │
02-22 23:42:38.341  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : App resumed.                                       │
02-22 23:42:38.341  4713  4713 I chromium: [INFO:CONSOLE(16234)] "App resumed.", source: http://localhost:8080/build/main.js (16234)                         │
02-22 23:42:38.403  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.403  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.448  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.449  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.471  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.471  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.480 23599  3595 I EventLogSendingHelper: Sending log events.                                                                                  │
02-22 23:42:38.489   432   597 E SurfaceFlinger: Failed to find layer (SnapshotStartingWindow for taskId=116#0) in layer parent (no-parent).                 │
02-22 23:42:38.515  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.515  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.610  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.610  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.632  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.632  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.645  1217  8563 I zygote64: Explicit concurrent copying GC freed 18800(932KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 7MB/14MB, pause│
02-22 23:42:38.658  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.658  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.680  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.680  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.707  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : [object Object]                                    │
02-22 23:42:38.708  4713  4713 I chromium: [INFO:CONSOLE(16234)] "[object Object]", source: http://localhost:8080/build/main.js (16234)                      │
02-22 23:42:38.735   594   751 D audio_hw_primary: disable_audio_route: usecase(1) reset and update mixer path: low-latency-playback speaker                 │
02-22 23:42:38.741   594   751 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)                                                                │
02-22 23:42:38.894  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : Heartbeat push completed in background mode.       │
02-22 23:42:38.894  4713  4713 I chromium: [INFO:CONSOLE(16234)] "Heartbeat push completed in background mode.", source: http://localhost:8080/build/main.js │
02-22 23:42:38.895  4713  4713 D SystemWebChromeClient: http://localhost:8080/build/main.js: Line 16234 : Completed background mode fetch.                   │
02-22 23:42:38.895  4713  4713 I chromium: [INFO:CONSOLE(16234)] "Completed background mode fetch.", source: http://localhost:8080/build/main.js (16234)     │
02-22 23:42:38.896  4713  4839 D TSBackgroundFetch: - finish                                                                                                 │
02-22 23:42:38.896  4713  4839 D TSBackgroundFetch: - jobFinished

Do you think this is just a case of data getting disabled in the background? Do you know if there is any way to confirm that it is what's happening?

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. You may also mark this issue as a "discussion" and I will leave this open.

stale[bot] commented 5 years ago

Closing this issue after a prolonged period of inactivity. Fell free to reopen this issue, if this still affecting you.

matodrobec commented 4 years ago

Hello @sta55en

I have same issue with sending request. Chrome DevTools is showing requests in a 'pending' state and never finished. Do you figure out how can it be solved sending request by browser? If I am using cordova-plugin-advanced-http then it is working well.

Thank you