Articles of android syncadapter

帐户每分钟同步

在我的AccountAuthenticatorActivity我尝试使用以下行在addAccountExplicitly之后尝试为帐户设置sync-options: ContentResolver.setIsSyncable(account, authority, 1); ContentResolver.setSyncAutomatically(account, authority, true); int seconds = getResources().getInteger(R.integer.syncFrequencySeconds); ContentResolver.addPeriodicSync(account, authority, new Bundle(), seconds); syncFrequencySeconds设置为86400(每24小时)。 但我的同步适配器仍然每分钟触发一次。 我究竟做错了什么? (同步本身没有任何问题)

使用一个SyncAdapter同步多个提供程序

我想将com.android.contacts和com.android.calendar与一个SyncAdapter同步。 这可能吗? 如果是,我如何编辑以下行?

Android – 在设置同步适配器时启用自动同步

我正在编写一个使用同步适配器来同步数据的应用程序。 我已经阅读了文档,我很确定我理解它是如何工作的。 我的大部分同步适配器都是按照Udi Cohen编写的精彩指南来完成的。 但是,我确实有一个问题似乎无法解决,而且在安装我的应用程序时会自动启用同步。 当我的应用程序运行时,它会创建一个同步适配器和一个帐户,完成您期望它完成的所有工作,这很棒。 但是,如果我转到设置>帐户>’我的应用程序’,则同步已关闭。 无论如何我可以让它自动启用吗? 帐户>’我的应用程序’的屏幕截图 设置同步适配器时,我的代码如下所示: if(accountManager.addAccountExplicitly(account,null,null)) { // Inform the system that this account supports sync ContentResolver.setIsSyncable(account, CONTENT_AUTHORITY, 1); // Inform the system that this account is eligible for auto sync ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true); // Recommend a schedule for auto sync ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(), SYNC_FREQUENCY); newAccount = true; } […]

当没有帐户存在时,Android身份validation器启动登录屏幕

我已经构建了一个Authenticator,我已经构建了一个SyncAdapter(两者都可以通过模拟器上的设置手动执行)。 如果没有find帐户,如何在应用程序启动时让我的应用程序启动登录屏幕(addAccount方法)? 这是我的Manifest.xml …

有没有人在Android SyncObserver上实现(或获得更多信息)

我正在开发一个Android应用程序,它与服务器执行后台同步(使用SyncAdapter和身份validation等)。 启动前台应用程序(使用UI)时,可能正在进行后台同步,或者可选择通过UI按钮启动后台同步。 我想要一种“插入”正在进行的后台同步(无论是由系统启动,还是定期同步设置或UI)的方法,并显示它在前台活动中的进度。 ContentResolver文档(http://developer.android.com/reference/android/content/ContentResolver.html)提到了一个神秘的“SyncObserver”,它没有链接到javadoc,也没有记录(我能find)。 还有一些其他页面提到它(http://www.chinaup.org/docs/migrating/m5-0.9/changes/android.content.ContentResolver.html)但我无法find更多相关信息。 有人实施过这种野兽吗? 如果没有,是否有人有关于跟踪前台活动中后台同步进度的示例代码或建议?

将多个参数放入ContentResolver.requestSync

我正在制作一个具有syncAdapter的应用。 我希望能够与一些将通过其捆绑发送的参数一起执行requestSync。 原因是我希望选择syncAdapter实例会做什么。 由于某种原因,putSerializable和putIntArray都会导致ContentResolver抛出exception: 08-16 14:34:49.080: E/AndroidRuntime(10318): java.lang.IllegalArgumentException: unexpected value type: java.util.MiniEnumSet 08-16 14:34:49.080: E/AndroidRuntime(10318): at android.content.ContentResolver.validateSyncExtrasBundle(ContentResolver.java:1144) 08-16 14:34:49.080: E/AndroidRuntime(10318): at android.content.ContentResolver.requestSync(ContentResolver.java:1111) 08-16 14:34:49.080: E/AndroidRuntime(10318): at com.sciatis.syncer.syncing.SyncAdapter.requestSync(SyncAdapter.java:100) 08-16 14:34:49.080: E/AndroidRuntime(10318): at … 为什么会这样? 有没有办法克服这个? 把一个整数运行正常,但那些操作没有。 难道我做错了什么 ? 有没有更好的方法来实现从活动向syncAdapter发送参数?

SyncAdapter完成后如何通知调用Activity?

在我的Android项目中,我使用自定义SyncAdapter来下载数据并将其存储在本地SQLite数据库中。 public class CustomSyncAdapter extends AbstractThreadedSyncAdapter { public CustomSyncAdapter(Context context, boolean autoInitialize) { super(context, autoInitialize); } @Override public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) { // 1) Download data via AsyncTask // 2) Store data via ContentProvider } } 我使用ContentResolver从主Activity调度sychronization,例如… ContentResolver.requestSync(account, Authentication.AUTHORITY, bundle); 同步完成时是否有通知方式通知调用Activity ?

如何向Android SyncManager发送sync-complete信号?

我在我的SyncAdapter中使用了cancelRequest(),就在它退出其线程之前,但我决定只打算由另一个想要取消正在进行同步的实体(UI)使用(花费太长时间,哎呀,等等。) 现在我的同步认为总有一个待处理请求 – 我用它来忽略新请求。 我要做的另一件事是服务中的侦听器线程正在侦听ContactsContract.AUTHORITY的更改,因此它可以启动我的聚合的同步。 更新:此侦听器线程正在泄漏。 当我完成它时,我发出了一个.stop(),但是,我认为有一个处理程序可以保持活动并使服务停止运行。 我想将SyncResults发送到一些实体(即SyncManager),它跟踪这些事情以进行待处理,回收等。 我错过了什么?

Android SyncAdapter卡在无限同步循环中

我正在编写一个Android同步适配器,基本上遇到了无限循环同步的问题。 一旦同步完成,它就会重新开始。 谢谢, 问候, 阿克沙伊 @Override public void onPerformSync(final Account account, final Bundle extras, final String authority, final ContentProviderClient provider, final SyncResult syncResult) { Log.i(“Sync result full sync = ” + syncResult.fullSyncRequested); Log.i(“Sync result ” + syncResult.toDebugString()); Log.i(“Bundle ” + extras.toString()); final CountDownLatch latch = new CountDownLatch(3); final CachedDataReceiver globalStreamRefreshReciever = new CachedDataReceiver(null) { @Override […]

同步适配器中的ContentResolver.requestSync在Android中不起作用

我正在尝试使用’StubProvider’和’StubAuthenticator’编写同步适配器,我遵循官方指南,我的代码运行没有任何错误,但’onPerformSync()’没有被调用,我尝试了一切但没有用。 我的完整项目可以从https://www.dropbox.com/s/48bgj3wweehaieu/MyApplication.zip?dl=0下载 这是我正在使用的类: 类MainActivity public class MainActivity extends FragmentActivity implements View.OnClickListener { // Constants // The authority for the sync adapter’s content provider public static final String AUTHORITY = “com.syncadaptertest.StubProvider”; // An account type, in the form of a domain name public static final String ACCOUNT_TYPE = “com.syncadaptertest”; // The account name public static final […]