我有一个应用程序,其主要功能是将数据发送到服务器并从中接收数据。
当用户明确选择执行此操作时,应用程序的主要活动会发送数据,但即使应用程序被销毁也应执行数据接收,因此当从服务器收到新数据时,将启动通知,并且还将更新应用程序的数据库,以便下次启动应用程序时,它可以从数据库加载此新数据。
所以,我有一个服务,负责发送和读取服务器,我想知道你认为以下情况的最佳方式是什么;
如果服务在应用程序的主要活动运行时获取新数据,则除了将其插入数据库之外,我还需要主要活动接收此数据并立即将其呈现给用户。
在完美的世界中,我会通过在服务中保留活动的引用来做到这一点,并且当服务获取数据时,它将使用它的引用调用活动中的方法。
但是我该如何实现呢?我应该使用Messenger
吗?我应该在queue
中将数据存储在服务中并尝试从主要活动中读取此queue
吗?
感谢。
答案 0 :(得分:1)
您可以通过在活动中注册广播接收器来实现此目的,该活动具有对其注册活动的引用。请参阅Context.registerReceiver
的文档。至于如何检索数据,根据它的大小,我要么只是将它包含在Intent中,要么只是在将数据放入数据库后触发Intent并在Intent中包含对插入条目的引用。