您能否告诉我在 Android 中进行同步作业的正确方法是什么(例如,如果我有大约 5 个作业)?
笔记!同步作业是指在后台运行并通过 Web 服务发送一些数据(例如分析)的线程......
有关更多详细信息,请阅读更详细的说明:
我的任务是实现一些后台作业,这些作业会将一些数据与宁静的 Web 服务同步。一些作业应该定期安排,并有特定的延迟。如果没有互联网连接,那么我只是缓存数据,然后当连接重新出现时,我尝试运行作业。考虑到创建新线程非常昂贵,尤其是在移动开发中,我正在使用缓存线程池 (ExecutorService),并且每次请求处理某些操作时,我都会尝试重用线程。我不使用 AsyncTask,因为我已经用这个 Executor Service (Executors.newCachedTreadPool) 替换了它,它对我来说很方便,因为我不需要创建很多 AsyncTasks,因为我重用了 ES 中的线程......为了支持预定的工作,我使用另一个线程池(ScheduledExecutorService)并使用 Callable,因为我需要查看执行结果。我这里有一个复杂的逻辑......所以,当在应用程序中完成特定操作时,第一个线程池(就像 AsyncTask)将像 AsyncTask 一样工作,优点是我不创建新线程但我重用它们。这不会阻塞 UI 的主线程。它将委托给预定的执行者来完成它的工作。此解决方案有效。这对我来说听起来不错,因为我来自服务器端,但我很想知道这必须如何在 Android 上正确完成?这对于移动应用程序来说是否过于复杂?谢尔盖 第一个线程池(就像 AsyncTask)将像 AsyncTask 一样工作,优点是我不创建新线程但我重用它们。这不会阻塞 UI 的主线程。它将委托给预定的执行者来完成它的工作。此解决方案有效。这对我来说听起来不错,因为我来自服务器端,但我很想知道这必须如何在 Android 上正确完成?这对于移动应用程序来说是否过于复杂?谢尔盖 第一个线程池(就像 AsyncTask)将像 AsyncTask 一样工作,优点是我不创建新线程但我重用它们。这不会阻塞 UI 的主线程。它将委托给预定的执行者来完成它的工作。此解决方案有效。这对我来说听起来不错,因为我来自服务器端,但我很想知道这必须如何在 Android 上正确完成?这对于移动应用程序来说是否过于复杂?谢尔盖 我有兴趣知道如何在 Android 上正确完成此操作?这对于移动应用程序来说是否过于复杂?谢尔盖 我有兴趣知道如何在 Android 上正确完成此操作?这对于移动应用程序来说是否过于复杂?谢尔盖