我正在开发一个Android应用程序,它通过java servlet从MS SQL服务器发送和获取数据。
我需要在更新数据库时更新应用程序的UI。 我正在考虑实现一个looper类,它将通过HTTP asyncTask调用servlet,并且每隔几分钟调用一次servlet。但是,对于应用程序来说,它将会有很多工作,并且会在数据库更新后立即更新UI。
有没有什么办法可以在数据库更新后立即从servlet调用android应用程序?我等不及Android应用程序调用servlet并检查数据库是否已更新。
非常感谢任何帮助。
这是我第一次写关于SO的问题,请原谅我的错误并建议我如何改进。
非常感谢, 阿什利
答案 0 :(得分:0)
java servlet是无状态的。这意味着不保持连接。 java servlet对您的应用程序一无所知,也无法直接与它通信。
如果您必须维护servlet设置,则可以使用Google Cloud Messaging将更新推送到用户的手机。但这并不是瞬间的,而是有延迟的。
最适合您的是将您的java servlet更改为具有套接字的Java应用程序。然后,您将通过套接字与Java应用程序进行通信,并在后台线程中保持打开状态。该线程将保持对您的活动的回调,当通过线程发回响应以表示已收到数据时,该回调可以填充它。