我有一个带有相应SyncAdapter的服务。此外,我通过AccountManager管理帐户数据,例如以下方式:
AccountManager accountManager = (AccountManager) mContext.getSystemService(ACCOUNT_SERVICE);
Account[] accounts = accountManager.getAccountsByType(Constants.ACCOUNT_TYPE);
Account account;
if (accounts.length != 0) {
account = new Account(Constants.ACCOUNT_NAME, Constants.ACCOUNT_TYPE);
accountManager.setPassword(account, null);
}
如果我从SyncAdapter的onPerform中调用此方法,则服务进入创建,绑定和销毁循环。我检查日志(通过将logcat过滤器设置为"没有过滤器"),我看到来自SyncManager的日志说:
SyncManager: account change detect - update database
。在此之后,服务被销毁,创建和绑定。 SyncAdapter的onPerform再次运行,对帐户执行相同的更改等。:loop。
我的问题是:帐户更改会导致服务和相应的SyncAdapter重新创建吗?