Ser*_*rge 8 java concurrency multithreading android
您可以告诉我在Android中执行同步作业的正确方法是什么(例如,如果我有大约5个工作)?
注意!通过同步作业,我指的是一个在后台运行并通过Web服务发送一些数据(例如分析)的线程......
有关详细信息,请阅读更详细的说明:
我有一项任务是实现一些后台作业,这些作业将一些数据与一个宁静的Web服务同步.有些工作应定期安排,并有特定的延迟.如果没有互联网连接,那么我只是缓存数据,稍后当连接重新出现时,我尝试运行作业.考虑到创建新线程非常昂贵,特别是在移动开发上,我正在使用缓存线程池(ExecutorService),并且每次请求处理某些操作时我都在尝试重用线程.我不使用AsyncTask,因为我用这个Executor服务(Executors.newCachedTreadPool)取而代之,它对我很方便,因为我不需要创建很多AsyncTasks,因为我重用ES中的线程...为了支持在预定的作业中,我使用另一个线程池(ScheduledExecutorService)并使用Callable,因为我需要查看执行结果.我在这里有一个复杂的逻辑...所以,当在应用程序中完成特定操作时,第一个线程池(就像AsyncTask)将像AsyncTask一样工作,优点是我不创建新线程但我重新审视他们.这不会阻止UI的主线程.它将委托给将执行其工作的预定执行人员.此解决方案有效.这对我来说听起来不错,因为我来自服务器端,但我很想知道如何在Android上正确完成这项工作?这对于移动应用来说太复杂了吗?谢谢,谢尔盖
Joe*_*lin 12
使用同步适配器.请参阅http://developer.android.com/training/sync-adapters/index.html.同步适配器在后台运行,由系统管理,并有效安排,以便您的同步不会浪费电池电量.最重要的是,系统将自动检测网络连接并在必要时排队同步适配器.如果需要,可以使用多个同步适配器.
请注意,尽管同步适配器似乎需要内容提供程序和身份验证器,但实际上并非如此.
| 归档时间: |
|
| 查看次数: |
4483 次 |
| 最近记录: |