Java 确保即使应用程序未打开,通知也会显示在Android上

Java 确保即使应用程序未打开,通知也会显示在Android上,java,android,android-notifications,alarmmanager,Java,Android,Android Notifications,Alarmmanager,我正在构建一个研究实验所需的应用程序。 该实验完全基于用户对以某种随机间隔显示的通知的响应。 最好的方法是什么,这样每个通知都会明确地显示给用户 到目前为止做了什么 我使用了AlarmManager和广播接收器,但通知在一段时间后停止显示。还使用了通知通道(带id)。 我怀疑操作系统会在应用程序在后台停留一段时间后将其删除 有人能帮助解释一下让应用程序显示通知的最佳方式吗 由于这是一个用于研究的应用程序,用户很清楚任何缓慢的性能或电池使用情况。唯一的优先事项是确保显示通知。没有这一点,整个实验将

我正在构建一个研究实验所需的应用程序。 该实验完全基于用户对以某种随机间隔显示的通知的响应。 最好的方法是什么,这样每个通知都会明确地显示给用户

到目前为止做了什么

我使用了AlarmManager和广播接收器,但通知在一段时间后停止显示。还使用了通知通道(带id)。 我怀疑操作系统会在应用程序在后台停留一段时间后将其删除

有人能帮助解释一下让应用程序显示通知的最佳方式吗

由于这是一个用于研究的应用程序,用户很清楚任何缓慢的性能或电池使用情况。唯一的优先事项是确保显示通知。没有这一点,整个实验将失败


任何帮助或指点都会很好!谢谢

我不确定您使用了什么方法来显示通知,因此我将给出一般性指导。 您将需要使用一个即使在应用程序关闭后仍保持运行的。如果后台服务的内存不足,那么它可能会被android操作系统杀死,因此您必须将应用程序的权限授予autostart。 如果您想要更高的可靠性,您应该使用。通过这种方式,您可以为通知服务提供高优先级


但是,与实现自己的NotificationBuilder服务相比,集成到应用程序中要简单得多。

该应用程序仅在单击通知时需要用户交互。据我所知,前台服务不适用于此用例。如果我错了,请纠正我。此外,该应用程序即使在脱机模式下也可以工作,firebase cloud message是否允许这样做?的确,NotificationBuilder一般不使用前台服务,但这是确保100%按时收到通知的唯一方法。在某种程度上,任何其他方法都会受到android设备的摆布。根据我的经验,FCM仍然可以满足您的需求。我已经实现了WorkManager,目前正在测试结果。谢谢你的指点@Mythos