首页 > 解决方案 > 关于确保用户收到他在 android 上安排的通知的问题?

问题描述

我一直在探索启动一个没有服务器的应用程序(只是 android 手机上的一个应用程序),但是当用户重新启动手机时,他会丢失之前在我的应用程序中设置的提醒通知,因为它更多的是不经常打开的提醒应用。我有这个以前的帖子,我也刚刚添加了一个赏金

https://stackoverflow.com/questions/63293900/code-in-trying-to-reschedule-previous-alarm-notifications-in-android-after-a-reb

但我开始怀疑并有第二个问题。我应该改为更改我的架构,以便我必须拥有一个服务器部分并通过 Google FCM api 触发通知,而不是每天向我的应用程序发送通知,以可能重新安排自手机重启后已失效的警报。有没有办法查看我的通知是否仍在安排中并且会在正确的时间发出?

谢谢,院长

标签: androidandroid-studio

解决方案


我对你提到的问题做了一个非常详细的回答,但我也会在这里插话。

我应该改为更改我的架构,以便我必须拥有一个服务器部分并通过 Google FCM api 触发通知,而不是每天向我的应用程序发送通知,以可能重新安排自手机重启后已失效的警报。

简短的回答,不。

长答案,如果您使用 FCM 触发每日检查以确保安排所有通知,那么为什么不直接使用它来触发提醒通知呢?FCM 具有高优先级的消息,可以唤醒手机并允许您的应用程序执行一些代码。但是,如果您计划向公众发布此应用程序,则最终会产生一个隐私问题,如果应用程序将所有信息保留在本地,则该问题不存在。如果您是唯一的用户,那么使用服务器来处理任何事情就更没有意义了。如果是给几个朋友,那么服务器可能是一种选择,但我仍然建议不要使用它,即使他们没有隐私政策也可以,因为这对应用程序来说是不必要的额外成本。

有没有办法查看我的通知是否仍在安排中并且会在正确的时间发出?

如果我上面的回答还没有解决这个问题,虽然在技术上可能会发现您的应用程序是否有任何使用 AlarmManager 设置的挂起警报,但这样做是不可行的。AlarmManager 不提供任何设置警报的任何可见性(请参阅此答案)。您必须想办法自己跟踪这一点,但就像我在第一部分中提到的那样,如果您要使用 FCM 来触发作业来安排通知,您不妨使用 FCM 来触发通知。


推荐阅读