当前位置: 首页 > 知识库问答 >
问题:

用于与web服务同步的Android后台作业

傅高逸
2023-03-14

你能告诉我在Android中做同步工作的正确方法是什么吗(例如,如果我有大约5个工作)<注意 我所说的同步作业是指在后台运行并通过Web服务发送一些数据(如分析)的线程。。。

有关更多详细信息,请阅读更详细的描述:

我的任务是实现一些后台作业,这些作业将使一些数据与restful web服务同步。一些作业应定期安排,并有特定的延迟。如果没有internet连接,我只需缓存数据,然后当连接再次出现时,我会尝试运行作业。考虑到创建新线程非常昂贵,尤其是在移动开发中,我使用缓存线程池(ExecutorService),每次请求一些操作进行处理时,我都试图重用线程。我不使用AsyncTask,因为我已经用这个Executor服务(Executors.NewCachedReadPool)替换了它,这对我来说很方便,因为我不需要在重用来自。。。为了支持调度作业,我使用另一个线程池(ScheduledExecutorService)并使用Callable,因为我需要查看执行结果。我这里有一个复杂的逻辑。。。因此,当在应用程序中执行特定操作时,第一个线程池(类似于AsyncTask)将像AsyncTask一样工作,优点是我不创建新线程,而是重用它们。这不会阻塞UI的主线程。它将委托给执行其工作的计划执行人。此解决方案有效。这对我来说很好,因为我来自服务器端,但我很想知道如何在Android上正确完成这项工作?对于移动应用程序来说,这是否过于复杂?谢谢Serge

共有1个答案

南门新荣
2023-03-14

使用同步适配器。请参阅http://developer.android.com/training/sync-adapters/index.html.同步适配器在后台运行,它由系统管理,并有效安排,以便您的同步不会浪费电池电量。最重要的是,系统会自动检测网络连接并在必要时对您的同步适配器进行排队。如果需要,您可以使用多个同步适配器。

请注意,尽管同步适配器似乎需要一个内容提供者和验证器,但它们实际上并不需要。

 类似资料:
  • 有人能回答我的困境,使用哪种方法将Android设备连接到mySQL或PostgreSQL? 我可以用这两种方式来做,没有任何错误和问题,没有明显的区别,但每个人都建议使用web服务而不是使用jdbc驱动程序和直接连接,

  • 这是我遇到的问题,与设计和实现相关: 我有一个接受 POST 请求的 REST Web 服务。没什么特别的。它当前以同步方式响应。 但是,此web服务将启动一个后台进程,这可能需要很长时间。 我不希望此服务在 30 分钟后响应。 相反,它应该立即向客户端返回一个ack响应,仅此而已(即使在30分钟后,也不会有更多的信息要发送)。 我如何在泽西实施这种行为? 我读了那一页https://jersey

  • 关于处理程序,我读过,它们不存在很长时间的延迟,并将在系统重新启动后终止。所以他们不适合我的任务。 但是AlarmManager似乎是解决这个问题的一个很好的候选者,因为在允许的情况下,它们甚至在系统重启后仍然存在,并且可以重新运行应用程序。但是在Android文档中,警报管理器是用于必须在特定时间运行的任务(比如闹钟)。但我的任务每分钟都要执行。 然后是后台服务。这是更多的任务,如在后台下载,因

  • 问题内容: 如何在不显示通知点的情况下继续在Android Oreo中进行后台服务?我使用通知继续后台服务,但我不想显示正在运行的服务的通知。 问题答案: 如果您可以在此处的某处正确阅读 Android Oreo 8.0 文档,则可能未在此处发布此问题。 步骤1: 确保您将服务作为前台启动,如以下代码所示 步骤2: 使用通知显示您的服务正在运行。在的方法中的代码下面添加一行。 步骤3:在服务停止或

  • 尽管在最初我也想去写一篇文章来说说后台的发展史,后来想了想还是让我们把它划分成不同的几部分。以便于我们可以更好的说说这些内容,不过相信这是一个好的开始。 RESTful与服务化 设计RESTful API REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转

  • 问题内容: 有人可以回答我的难题吗,该使用哪种方法将 Android 设备连接到mySQL或Postgresql? 我可以用两种方式完成此操作,没有任何错误和问题,没有明显的区别,但是每个人都建议使用Web服务,而不要使用jdbc驱动程序和直接连接, 有人可以用一些事实解释为什么吗? 编辑: 我没有提到这是更简单的,并且需要更少的时间通过jdbc来完成它。那么,为什么要使用Web服务? 问题答案: