我已经使用 Android sample project、Steele 的两部分教程( 12 )和 Google I/O 2010 关于 REST 应用程序的演讲设置了一个 SyncAdapter。

似乎 AbstractThreadedSyncAdapter 总是在 onPerformSync 完成后立即在 SyncAdapter 服务上调用 onDestroy 。不过,我想从 SyncAdapter 服务中分离出其他线程,我想知道是否有可能让 SyncAdapter 服务保持 Activity 状态,直到这些线程完成——例如,将这些异步工作线程的回调注册回 SyncAdapter 服务.

是否可以在 onPerformSync 之后不终止服务的情况下做到这一点?或者您是否必须将所有同步方法放入 SyncAdapter onPerformSync 方法中的同一个线程中?

最佳答案

我很确定答案是“不”......但即使有可能,你为什么要这样做呢? SyncAdapter 已经在后台线程上工作了……那么为什么必须在 SyncAdapter 服务中触发单独的工作线程来执行同步?

我想如果您尝试注册回调和/或混淆 SyncAdapter 的生命周期来实现这一点,事情会开始变得困惑。 Android 的同步服务负责为任意数量的应用程序(即 GMail、Google Drive 等)安排/执行同步操作,因此当 onPerformSync 完成时,这是一种告诉 Android 工作已完全完成并且应该集中注意力的方式在下一个应用程序上它必须同步。

关于Android SyncAdapter 服务 : Keep alive after onPerformSync ends?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12769839/

10-10 12:49