我一直在使用isSyncActive()检查同步是否有效。在Android版本上运行良好的一切< 5.0但在新的Android 5.0版本上它抛出异常java.lang.IllegalArgumentException: account must not be null
。有没有解决方案,为什么这只发生在上面提到的Android版本。
答案 0 :(得分:0)
如果您感兴趣,内容解析器的代码是开源的:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/ContentResolver.java。我也遇到与5.0更新相关的其他问题,这就是我在这篇文章中遇到的问题。看起来您需要将有效的帐户对象传递给方法才能使其工作。
public static boolean isSyncActive(Account account, String authority) {
if (account == null) {
throw new IllegalArgumentException("account must not be null");
}
if (authority == null) {
throw new IllegalArgumentException("authority must not be null");
}
try {
return getContentService().isSyncActive(account, authority, null);
} catch (RemoteException e) {
throw new RuntimeException("the ContentService should always be reachable", e);
}
}