I'm developing an android app which implements push notifications using parse.
I have a requirement that the app must 'still receive notifications if the app is not running', but what is 'not running' on android? from what I gather there are 3 ways in which an app can 'not run'.
using the back button when the app is running
going to applications->force quit
holding down the back button and clearing the app from the list of recent apps
using the home button.
I have a broadcast receiver registered through manifest that fires only if the app has been closed using methods 1. and 4.
Is that how it should work on android? or should my broadcast receiver trigger no matter how the app is closed?
It's the normal behavior, take a look at the doc here :
http://developer.android.com/about/versions/android-3.1.html
Section Launch controls on stopped applications
Or here :
http://www.javacodegeeks.com/2012/05/android-broadcast-receiver-change-in.html
Related
I have noticed that when I send a push notification (Firebase Messaging Service) to my device my Application object is created. This is without clicking on the notification. Simply the act of viewing the notification creates the application. Further, it also starts the Jetpack AppStartup library. I want to be able to use AppStartup and application create. But I don't want to launch that code when a push notification occurs.
Why does Android do this? Is this part of all android notification, or is it a feature of the third-party push notification sdk I am using? And is there a way in Application.create and AppStartup to distinguish a normal app launch from a push notification triggered launch?
Again, I'm not talking about the user clicking on the notification (and launching the app because of a deeplink). I'm talking about just looking at the notification in the notification dropdown.
Why does Android do this?
Android is starting your app process to run code in your app. Creating an Application instance and calling onCreate() will be part of that, as will creating any ContentProvider objects. IIRC, Jetpack Startup uses a ContentProvider to get control early in your process, though I am not 100% certain of that.
The reason why Android is starting your app process is because your app is causing the Notification to be displayed — specifically, Firebase Cloud Messaging is doing that. If I remember the protocol correctly, Play Services is sending a broadcast Intent that Firebase Cloud Messaging in your app will respond to, and part of that code will be displaying the Notification.
And is there a way in Application.create and AppStartup to distinguish a normal app launch from a push notification triggered launch?
onCreate() of an Application subclass has no means of knowing what specifically caused the process to be created, as there can be many possible reasons. If by "AppStartup" you mean Jetpack Startup, I do not recall it having any options here, but I have not spent much time with its API.
I'm working on a calling feature app and app need to open certain activity after getting push notification. In order to open an activity I need some authentication which implemented in a service. I'm getting the push and after authentication successfully it start the activity but system destroy the service because Android screen still unlock(Everything works well when app is not locked). I needs the following things:
Need to keep service alive
or
Unlock the phone programmatically.
Looking for some help.
My app receives FCM and fires local notifications, which open target activities. This works fine if the local notification is clicked when the app is not running.
But, if the local notification is clicked when my app is already running (foreground or background), I don't want to open the target activity but shows an AlertDialog first. So, the activities stack is not changed and the user can continue what he was doing before.
It seems the local notification must have an action, which opens activities. Is there anyway achieve what I wanted above?
I think you have to stop sending push notification when you app is in foreground
check if your app is in foreground or by following this link
check android application is in foreground or not?
check this in firebaseMessegingService class before sending PN and manage alert dialog appearance according that
I have implemented push notification with OneSingal APIs in my android project. I'm facing an issue while clicking the push notification, that i was unable to launch the specified screen when the user click the push notification, If the user kill the app from background(long press and remove the pplication from list of apps). I have registered the Open/Receiver handlers in application class. Seems like, the handlers are no more visible in the app, when user kill/remove the app from background.
Please help me to resolve the issue.
Unfortunately Android apps are not able to receive notifications when they have been force-closed. This is part of the design of the Android OS.
I have used GCM to get push notifications, now if I Force stop the app from the settings on the Android device, will it be able to get push notifications?
I have read many posts that say in this case an app cannot receive notifications.
Is there any possibility to get notifications?
Once you force-stop your app from Settings, your code will not run until something manually runs one of your components (ie the user manually launches an activity).
Therefore after force-stopping your app from Settings, you will not receive GCM messages.
If you want to get notifications you have to manually restart your app.
This is by design since Android 3.1.
Apps that are in the stopped state do not receive broadcast Intents.
Stopped state is:
when the app is initially installed (before the user runs something in
the app) or
after a Force Stop.
You can find more about this here: http://developer.android.com/about/versions/android-3.1.html#launchcontrols