我使用Android sample project,Steele的两部分教程(1和2)以及Google I / O 2010关于REST应用程序的讨论设置了SyncAdapter。
似乎AbstractThreadedSyncAdapter在onPerformSync完成后立即在SyncAdapter服务上立即调用onDestroy。我想从SyncAdapter服务中剥离其他线程,我想知道是否有可能使SyncAdapter服务保持活动状态,直到这些线程完成为止 - 例如,将这些异步工作线程的回调注册回SyncAdapter服务
在onPerformSync之后是否可以在不杀死服务的情况下执行此操作?或者您是否必须将所有同步方法放入SyncAdapter onPerformSync方法中的同一个线程中?
答案 0 :(得分:4)
我很确定答案是“不”......但即使有可能,你为什么要这样做呢? SyncAdapter
已经在后台线程上工作了...那么为什么要在SyncAdapter
服务中启动单独的工作线程来执行同步呢?
我想如果你试图注册回调和/或弄乱SyncAdapter
的生命周期来实现这一点,那么事情就会开始变得混乱。 Android的同步服务负责为任意数量的应用程序(例如GMail,Google云端硬盘等)安排/执行同步操作,因此当onPerformSync
完成时,这是告诉Android工作完全完成的一种方式它应该专注于它必须同步的下一个应用程序。