我的应用程序由基于登录的用户系统组成,用户将在其中接收他的任务。用户的任务列表需要定期与服务器同步,以便任何新任务都能立即反射(reflect)在应用程序上。我以前在其他应用程序中做过这种同步的事情,但我想知道最好的方法。我有两种方法,请告诉我哪一种更好,或者如果您有任何其他想法,请告诉我。
方法 1
我可以使用 IntentService和 AlarmManager以固定的时间间隔运行后台服务,并通过 http 请求(即应用程序到服务器请求)检查服务器上的任何更改。
方法 2
我可以使用 NanoHTTPD 通过我的应用托管一个小型 TCP 服务器库,在服务器上的每个新条目之后,我可以从服务器向这个小型 TCP 主机发出请求,通知这些更改(即服务器到应用程序的请求)。
我以前用过 APPROACH1,但我对 APPROACH2 更感兴趣(我认为这会消耗更少的电量)。所以请让我知道哪种方法更好(即更高效、更安全等)。如果您有任何其他想法,请随时分享。
最佳答案
这两种方法都会显着耗尽电池电量。
此处的最佳做法是使用推送通知。您所要做的就是向 FireBase 云消息传递等知名服务提供商之一注册您的应用程序,然后配置您的应用程序的服务器以将通知发送到云消息传递服务,该服务将处理您的通知传递。
而且您不必担心电池使用情况,因为它们使用 google play 服务来保持连接打开。
您只需覆盖服务的 onMessageReceived 方法并从那里更新您的数据。
关于java - 使您的应用程序随服务器更新的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47534515/