I want to implement a long running service to receive push messages from emqx server (even when the program is not running). If I use android Service or JobIntentService, it will be necessary to display a notification which is not intended. If I use WorkManager, The minimum repeat interval that can be defined is 15 minutes. For some reason we do not want to use Firebase. Is there a solution to this issue?
Long running service to receive push messages from emqx
278 views Asked by Faz At
2
There are 2 answers
0
khesam109
On
As you mentioned, in new versions of android, there are many restriction on using background services. Therefore, I suggest you using a hybrid approach if you can. Your server informs the client for new messages using google-fcm service and whenever the client received it, on WorkManager establish a connection to the emqx broker in order to get the actual messages. In this approach you can connect to your broker whenever the app is on the foreground and also you do not send your messages through the fcm but using it as an alarm to clients for new messages.
Related Questions in ANDROID
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in SERVICE
- Why does Angular ^17 have problems with my modules, services, etc
- Problem with Android App background service stoping
- How to use interceptors with services in nestjs
- Exchange data between a Windows service and an application
- Unable to resolve service name to its IP inside kubernetes cluster
- Self Hosted Agent service startup getting failed on VM restart
- Linux service stops logging
- Disable/Enable OSB proxy service via WLST
- Write rows on destination even when an error occurs?
- paho mqtt java cannot reconnect after a long time machine sleep
- IServiceCollectionConfigurator' does not contain a definition for 'UsingRabbitMq'
- "setOngoing(true)" Notification dismissed by user
- How to run powershell command in OnStart of ServiceBase Class in C#?
- Is there any way to globally override Android's back button click?
- Terraform Azure Provider: Authenticating using a Service Principal with a Client Certificate
Related Questions in PUSH
- How to combine JSON objects and unnest array of arrays
- Almost empty git repo has huge size
- How to add the outout the random element from array and keep adding 1 by 1 in empty array?
- Unable to push changes via git behind Proxy with Heroku
- How to enable a PR originating from a forked repo to cause a GitHub workflow to push to a branch (gh-pages) in the original repo?
- Asset validation error on App Store upload
- Copy project files in path and projects in child subgroups
- Extra files included in push e.g. settings.py
- How to fix this issue with git push?
- Can images be blocked from being pushed to Harbor based on the number of artifacts for that image?
- How do I push a file into its subfolder in git repository?
- iOS - React-Native - Click on Push does not render the App
- Created a stack and the push() method is not working
- issue on pushing refs on Git repository
- Eclipse IDE can't Commit & Push to GitHub
Related Questions in ANDROID-WORKMANAGER
- Background location using WorkManager in Android 13 returns null when app is closed
- Flutter How to use Getx controller and change UI with work manager?
- Does WorkManager execute on its own process?
- Cancel the one time scheduled work in Android
- Exception thrown inside Coroutine Worker shuts down the worker
- How to solve WorkManager is not initialized properly error?
- PeriodicWorker doesn't show notifications
- Workmanager jobs stop working or do not complete on a third or fourth attempt
- PeriodicWorkRequestBuilder is set 40 years in the future
- Background current location update
- Canceling Unnamed, Non-Unique Periodic WorkRequests in Android WorkManager
- Can we use recurring OneTimeWorkRequest that enqueues another OneTimeWorkRequest every 5 mins to achieve period of 5 min using WorkManager in Android?
- @HiltAndroidApp is unresolved after adding hilt-work dependency
- Would I need to use WorkManager instead of Service for these case scenarios?
- Issue with Hilt integration in WorkManagerApplication
Related Questions in JOBINTENTSERVICE
- Location fetched from cache (older location) if the app is resumed from background
- Cannot resolve symbol 'JobIntentService'
- Long running background task from BroadcastReceiver - which class to use?
- IllegalArgumentException with JobIntentService in Background
- Long running service to receive push messages from emqx
- When app is onAppBackgrounded I need to upload data to server android
- Kotlin: How to call JobIntentService from Fragment?
- Best way get GPS Location in background for Android API level 30 and higher
- xiaomi android 7: JobIntentService.onHandleWork() runs in a loop
- Do JobIntentServices limits the number of threads? Application with multiple JobIntentServices is gives just two threads for all services
- Android Widget button service does not respond to click
- Show notification every 1 minute Android
- JobIntentService - onHandleWork is not always called?
- How to prevent TransactionTooLarge exception while passing data between JobIntentService to activity via Broadcast receiver
- Android JobIntentService as wrapper on another service
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
"Push Notification" means "the server triggers your App", so there are two main methods:
First option uses a single connection which is managed by Android for all (or most of) Apps, so the energy compsumption is very low and Connection/Network events are managed by Android itself.
The Second option requires heavy work about Connection/Network re-connections and some work on Server-side. Your server should hold and manage many Client connections for how log it's needed. Moreover the Server should know Client's TCP/UDP handler to know which Client to send message at. This way drains more battery energy than the first one.
If you intend "Push Notification" as "polling the Server to know if some Notification is ready", then you're misunderstooding "Push" word and you can ONLY create a persistant Service WITH notification icon (this behaviour is mandatory starting from SDK 26).