java - 使您的应用程序随服务器更新的最佳方式是什么?

标签 java android performance intentservice nanohttpd

我的应用程序由基于登录的用户系统组成,用户将在其中接收他的任务。用户的任务列表需要定期与服务器同步,以便任何新任务都能立即反射(reflect)在应用程序上。我以前在其他应用程序中做过这种同步的事情,但我想知道最好的方法。我有两种方法,请告诉我哪一种更好,或者如果您有任何其他想法,请告诉我。

方法 1

我可以使用 IntentServiceAlarmManager以固定的时间间隔运行后台服务,并通过 http 请求(即应用程序到服务器请求)检查服务器上的任何更改。

方法 2

我可以使用 NanoHTTPD 通过我的应用托管一个小型 TCP 服务器库,在服务器上的每个新条目之后,我可以从服务器向这个小型 TCP 主机发出请求,通知这些更改(即服务器到应用程序的请求)。

我以前用过 APPROACH1,但我对 APPROACH2 更感兴趣(我认为这会消耗更少的电量)。所以请让我知道哪种方法更好(即更高效、更安全等)。如果您有任何其他想法,请随时分享。

最佳答案

这两种方法都会显着耗尽电池电量。

此处的最佳做法是使用推送通知。您所要做的就是向 FireBase 云消息传递等知名服务提供商之一注册您的应用程序,然后配置您的应用程序的服务器以将通知发送到云消息传递服务,该服务将处理您的通知传递。

而且您不必担心电池使用情况,因为它们使用 google play 服务来保持连接打开。

您只需覆盖服务的 onMessageReceived 方法并从那里更新您的数据。

关于java - 使您的应用程序随服务器更新的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47534515/

相关文章:

android - Cordova - 模拟 [平台] 构建良好,但在应用程序中失败

java - 在自定义应用程序类中保存对象存储是一种好习惯吗

mysql - 将列长度从 varchar 18 更改为 varchar 8 会大大提高搜索速度吗?

PHP 101 : variable vs function

java - 如何从 Java Swing/GUI 调用 JavaFXApplication?这可能吗?

java - Unresolved 主机异常 Android

java - 尝试从 Android 数据库中获取数据时 JSON 显示错误 403

java - Java 8 中的 Swing 带来了哪些新变化?

Android:ListView 的工作原理

php - 使用php加载脚本的效率如何?