[GH-ISSUE #423] Sync job is started in different ways depending on the source #300

Open
opened 2026-02-28 01:24:03 +03:00 by kerem · 0 comments
Owner

Originally created by @alxndrsn on GitHub (Apr 8, 2016).
Original GitHub issue: https://github.com/ushahidi/SMSSync/issues/423

There are two different mechanisms for restarting suspended services, seemingly used in very similar situations. Control flows as follows:

PowerStateChangedReceiver

  1. PowerStateChangedReceiver.onReceive()
  2. AutoSyncScheduledService.executeTask()
  3. PostMessage.syncPendingMessages()
  4. PostMessage.postMessage()

ConnectivityChangedReceiver

  1. ConnectivityChangedReceiver.onReceive()
  2. SyncPendingMessagesService.executeTask()
  3. SyncPendingMessagesTask.execute()/.doInBackground() ... SyncPendingMessagesTask.syncPending()
  4. PostMessage.routePendingMessage
  5. PostMessage.postMessage()

Is there a reason why these different routes are used in the different situations? Would a single process be preferred, and if so which would it be?

Originally created by @alxndrsn on GitHub (Apr 8, 2016). Original GitHub issue: https://github.com/ushahidi/SMSSync/issues/423 There are two different mechanisms for restarting suspended services, seemingly used in very similar situations. Control flows as follows: # [`PowerStateChangedReceiver`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/receiver/PowerStateChangedReceiver.java) 1. [`PowerStateChangedReceiver.onReceive()`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/receiver/PowerStateChangedReceiver.java#L69) 2. [`AutoSyncScheduledService.executeTask()`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/service/AutoSyncScheduledService.java#L56) 3. [`PostMessage.syncPendingMessages()`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/data/message/PostMessage.java#L164) 4. `PostMessage.postMessage()` # [`ConnectivityChangedReceiver`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/receiver/ConnectivityChangedReceiver.java) 1. [`ConnectivityChangedReceiver.onReceive()`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/receiver/ConnectivityChangedReceiver.java#L54) 2. [`SyncPendingMessagesService.executeTask()`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/service/SyncPendingMessagesService.java#L114) 3. [`SyncPendingMessagesTask.execute()/.doInBackground()`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/task/SyncPendingMessagesTask.java#L92) ... [`SyncPendingMessagesTask.syncPending()`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/presentation/task/SyncPendingMessagesTask.java#L201) 4. [`PostMessage.routePendingMessage`](https://github.com/ushahidi/SMSSync/blob/master/smssync/src/main/java/org/addhen/smssync/data/message/PostMessage.java#L228) 5. `PostMessage.postMessage()` --- Is there a reason why these different routes are used in the different situations? Would a single process be preferred, and if so which would it be?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/SMSSync#300
No description provided.