Articles of 同步

Android Sync Sqlite

我正在制作一个使用SQLite的应用程序的字典。 我有一个单独的表来保存这对外来单词及其翻译。 我想将此表与Google文档中的特定电子表格同步 。 我find了这个很棒的库来检索和操作GoogleSpreadsheets ,所以至少我已经被覆盖了。 但我对同步感到不舒服。 现在, 我可以使用SyncAdapter在我的SQLite和GoogleSpreadsheet之间进行此同步吗? 如果是的话,我该怎么做呢? 我会在onPerformSync或smth中检索和操作电子表格的行吗? 这种情况的其他替代方案可能是什么? 我可以使用普通服务在用户请求时进行检查(例如,在主要活动中)吗? 在Google I / O vids上(特别是在Android REST客户端应用程序上 ),使用SyncAdapter似乎很有说服力,但我不确定它是否可以帮助我没有实际的REST服务。 提前致谢..

使用setPeriodic()时,Android JobScheduler经常运行

我注意到我的预定JobScheduler经常执行工作方式。 我把它设置为每天执行,它需要闲置,处于wlan并充电,但是当满足这些条件时,工作就像每10分钟甚至更频繁地执行一样。 我的代码: JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(context.getPackageName(), SyncJobService.class.getName())); builder.setPeriodic(TimeUnit.DAYS.toMillis(1)) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) .setRequiresCharging(true) .setRequiresDeviceIdle(true); int code = jobScheduler.schedule(builder.build()); if (code <= 0) { Log.e(TAG, "Could not scheduled job: " + code); return; } Log.e(TAG, "Scheduled job"); 该作业执行后台线程以从Internet下载数据,并在完成数据下载后调用 mService.jobFinished(mParams, true); 通知作业调度程序作业已完成,并应重新计划。 即使这段时间设定为一天,工作怎么经常执行? 我的android 6.0.1设备几乎从不进入打盹模式,因为工作经常运行。

我何时在Android游戏中同步方法或在我的方法中使用同步块?

我正在研究在Android中编写简单的图形代码,我注意到了一些synchronized()块。 这背后的原因是什么,我怎么知道什么时候应该“同步”我的代码?

Android多个同步适配器项目,如Google帐户?

我目前将Android应用设置为使用Android的AccountManagerfunction,使用SyncAdapter和经过身份validation的帐户自动执行同步。 我只有一个同步适配器运行,它同步所有内容,但我想将其分开,以不同的间隔执行不同内容的同步。 我如何拥有Google这样的多个同步项?

使用带repo的local_manifest.xml

我使用repo下载了android源代码。 它说repo被初始化为一个目录,那就是文件夹下载的地方。 现在我有另一个local_manifest.xml文件,我想使用repo sync来获取另一个目录。 如何使用此新清单文件将目录提取到我的存储库?

SyncAdapter始终处于挂起状态

我正在开发一个Android应用程序,它依赖于SyncAdapter来刷新服务器上的内容。 我基本上遵循了这些说明: https : //developer.android.com/training/sync-adapters/creating-sync-adapter.html 直到最近,这仍然很好。 我知道这可能听起来很愚蠢,但老实说我不知道​​我是怎么搞砸的:( 设置 我有一个ContentProvider ,因此我想要同步的所有项目都有一个SyncAdapter和一个帐户。 我使用整数标志来确定哪个项目必须同步: public static final int EVENTS = 0x1; public static final int NEWS = 0x2; public static final int SUBSTITUTIONS = 0x4; public static final int TEACHERS = 0x8; public static final int ALL = 0xF; 所以在我的onPerformSync我有类似的东西: ArrayList batchList = new ArrayList(); int which = […]

同步和异步活动

任何人都可以帮我理解Android中的同步和异步活动吗? Android中的同步和异步活动到底意味着什么? StartActivity , StartSubActivity和StartAcivityForResult是同步还是异步启动活动,还是它们可以以两种方式运行? 请解释,因为我已经阅读了很多文章,但未find任何适当的解释。

为什么这个同步块似乎需要很长时间才能锁定?

我是java中的multithreading新手,我有一些问题可能会发现很简单。 我必须调试第三方代码,我需要一些基本信息,知道在哪里寻找问题,因为代码非常大。 运行以下代码时: public void method() { long startTime = System.currentTimeMillis(); synchronized (obj) { log( “time:” + System.currentTimeMillis() – startTime + ” ms” ); … } } 我明白了: 11:13:12 – time: 3816 ms … 11:14:14 – time: 0 ms 为什么需要这么长时间(3816毫秒)才能获得对象的锁定? 我应该在哪里看? 例如,我想可能的答案是寻找获取“obj”锁定的代码,例如: synchronized (obj) { … } 或者是否可能在没有“synchronized”的对象“obj”上进行任何修改也可以锁定对象?

在android中联系同步适配器

我想在我的应用程序中使用同步适配器来同步本机和第三方联系人(FB除外)与服务器。 (只有客户端到服务器单向同步) 我有两个疑问 – 1)如果设备中有多个同步适配器,并且如果脏位已被另一个同步适配器清除,我的同步适配器是否能够立即检测到联系人更改/更新。 2)我用过 ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1); ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true); 将联系人与服务器同步。 它确实每30秒启动一次同步。 但是我想让它在添加或删除或更新联系人时立即得到通知以启动perfromSync操作。 我是否也需要使用观察者?

每次添加/删除自定义types的帐户时,为什么Android会触发Google帐户同步?

我有一个与使用AccountManager和Sync的Web服务相关联的应用,允许用户通过应用登录到他们的帐户并同步他们的数据(这是自定义数据,而不是联系人或Google帐户使用的任何其他内容)。 AFAIK,我正按照我应该的方式做所有事情。 当用户通过我们的API登录时,我将他们的帐户保存到Android AccountManager: AccountManager am = AccountManager.get(context); m.addAccountExplicitly(new Account(username, ACCOUNT_TYPE), account_id, user_data); 我已将ACCOUNT_TYPE定义为应用程序的包名称,这应足以将其与任何其他帐户types区分开来。 添加帐户后,我会将其设置为自动同步: ContentResolver.setSyncAutomatically(account, AUTHORITY, true); ContentResolver.addPeriodicSync(account, AUTHORITY, new Bundle(), SYNC_FREQUENCY_SECONDS); 我已将SYNC_FREQUENCY_SECONDS定义为86400(即1天)。 同样,如果用户注销,我只需从AccountManager中检索他们的帐户并调用removeAccount()将其删除。 很好,很简单。 同步是通过我自己的代码执行的,因为它是正在同步的所有自定义数据,并且一切正常。 然而,令我发疯的是,每当我使用此代码添加或删除帐户(我自己的types)时,它会立即触发设备上所有Google帐户的同步。 这意味着,在同步我的数据之前,首先必须同步所有电子邮件,日历数据,联系人,Google Play杂志,Google+数据和图片等等。这可能需要几分钟,在此期间我的应用只是耐心等待轮到同步数据。 这是非常令人沮丧的,我的用户很难理解为什么一旦他们登录就需要这么长时间来同步他们的数据(更不用说,当它同步那么多数据时,手机有慢慢的趋势几乎到了无反应的程度)。 我在这里做错了吗? 我的代码中是否存在无意中告诉Android的内容,“嘿,现在就去同步所有Google数据!”? 或者,这是Google必须忍受的Google帐户/同步框架中固有的内容吗?