我正在使用FCM向我的用户发送通知,遗憾的是,根据这篇文章,一些制造商会干扰通知投放:https://onesignal.com/blog/manufacturers-interfere-with-reliable-notifications/
当用户从最近的应用程序堆栈中刷出您的应用程序时,通常会出现问题,因为这会导致某些设备上的强制停止。
考虑到一个解决方案,我注意到当发送通知后打开应用程序(但它没有通过电话显示)时,最终会显示通知...所以,我建议的方法是启动我的应用程序( 在后台)定期确保将通知发送给我的用户。
所以..我的问题:如何以编程方式在后台启动我的应用程序?
也许与alarmManager
一致,但不确定。
此主题的一些相关信息:Android app not receiving Firebase Notification when app is stopped from multi-task tray
答案 0 :(得分:0)
对于您描述的这种情况,如果用户从最近的应用程序中将其刷出来强制停止应用程序,那么在下次用户打开应用程序之前,它的任何进程都不会再有效。它是强制关闭的行为,如果被强制关闭,你无法在后台启动应用程序。
该应用会在用户打开时收到通知,因为通知的有效期为GCM
,最长可达4周,默认设置为4周。因此,如果在time to live
间隔内的某个时间打开他/她的应用,用户将收到通知。
对于您的情况,我建议在第一次运行应用程序时向用户显示指南(特别是对于华为,华硕和小米等设备的用户,这些设备有默认设置)并鼓励他们从那些应用程序中排除您的应用程序不允许在后台工作或在后台访问网络。例如,对于某些华为设备,您的应用应该列在Protected Apps
中,也可以是Networked Apps
。