当推送消息到达时通知 运行 应用程序更新数据的正确方法是什么?
What is the correct aproach to notify running application to update data when a push message arrives?
我有一个简单的聊天应用程序,可以接收推送通知。为此,我在我的清单文件中注册了一个 BroadcastRecevier。当推送消息到达时,此 BroadcastRecevier 会将传入数据保存到数据库中,以便在应用程序启动时我可以获取未读消息。为了在 运行 处于前台时通知应用程序再次获取数据,我在我的 activity 中定义了另一个 BroadcastRecevier,并在应用程序启动时动态注册。所以我的第一个 BroadcastRecevier 获取数据并将其保存到数据库并为运行时 BroadcastRecevier 发送广播消息。
用例 1:应用程序不是 运行
- BroadcastRecevier 获取推送消息
- BroadcastRecevier 将消息保存到数据库
- BroadcastRecevier 为运行时 BroadcastRecevier 发送广播消息
- 当应用程序启动时,从数据库中读取消息
用例 2:应用程序是 运行
- BroadcastRecevier 获取推送消息
- BroadcastRecevier 将消息保存到数据库
- BroadcastRecevier 为运行时 BroadcastRecevier 发送广播消息
- Runtime BroadcastReceiver 获取消息并处理它
这是一个好习惯吗?
您还有其他更好的解决方案吗?
提前致谢。
这取决于广播接收器是用来处理短任务的,所以如果你正在执行一个短功能,让广播接收器处理(用户案例 2)如果它很大或需要时间使用(用户案例 1)
我有一个简单的聊天应用程序,可以接收推送通知。为此,我在我的清单文件中注册了一个 BroadcastRecevier。当推送消息到达时,此 BroadcastRecevier 会将传入数据保存到数据库中,以便在应用程序启动时我可以获取未读消息。为了在 运行 处于前台时通知应用程序再次获取数据,我在我的 activity 中定义了另一个 BroadcastRecevier,并在应用程序启动时动态注册。所以我的第一个 BroadcastRecevier 获取数据并将其保存到数据库并为运行时 BroadcastRecevier 发送广播消息。
用例 1:应用程序不是 运行
- BroadcastRecevier 获取推送消息
- BroadcastRecevier 将消息保存到数据库
- BroadcastRecevier 为运行时 BroadcastRecevier 发送广播消息
- 当应用程序启动时,从数据库中读取消息
用例 2:应用程序是 运行
- BroadcastRecevier 获取推送消息
- BroadcastRecevier 将消息保存到数据库
- BroadcastRecevier 为运行时 BroadcastRecevier 发送广播消息
- Runtime BroadcastReceiver 获取消息并处理它
这是一个好习惯吗? 您还有其他更好的解决方案吗?
提前致谢。
这取决于广播接收器是用来处理短任务的,所以如果你正在执行一个短功能,让广播接收器处理(用户案例 2)如果它很大或需要时间使用(用户案例 1)