我目前需要在ContentProvider
/ SQLite
数据库的SyncService
数据库之上构建SyncAdapter
,该数据库在与我的应用程序不同的进程中运行。 SyncService
对某些数据进行了一些小查询和更新。我想我可以使用ContentProvider
(通过getContentResolver()
访问)来访问/更新我的主应用程序中的数据,而不是直接查询提供程序构建在SQL
数据库之上
最近,我在我的TransactionTooLargeExceptions
SyncAdapter
中一直受到(:sync process)
的困扰 - 尽管它只是对数据库进行小查询/更新。但是,我在我的应用程序(主进程)中使用ContentProvider
进行了更大的查询。这可能是SyncAdapter
中缓冲区过大的原因吗?两个进程是否共享相同的ContentProvider
,因此共享相同的事务缓冲区?
如果是这种情况,那么在主申请流程中不使用ContentProvider
是明智的,对吗?如果不是这样的话 - 在主应用程序中使用ContentProvider
的优缺点是什么?