gpt4 book ai didi

android - 以用户定义的频率同步选定的帐户

转载 作者:太空狗 更新时间:2023-10-29 15:17:21 26 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,它以用户定义的频率同步选定的帐户。

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();
Pattern emailPattern = Patterns.EMAIL_ADDRESS;
for(i=0;i<AcntCount;i++)
for (Account account : list)
if (emailPattern.matcher(account.name).matches())
if(account.name.matches(syncSettings.getString("Account"+i.toString(), null)))
//ContentResolver.addPeriodicSync(account, authority, extras, pollFrequency)

addPeriodicSync() 中应该给出什么值来代替 authorityextras。我必须为此编写一个同步适配器吗?

最佳答案

是的。你必须写一个 SyncAdapter。 addPeriodicSync() 专门用于告诉 ContentResolver 使 SyncAdapter 在计时器上触发。

您需要什么权限?好吧,SyncAdapters 在 (Account,Authority) 对上工作。

该帐户指定了特定的登录名——例如,如果您有多个 Gmail 地址,您可能有多个。

管理局告诉您数据的种类——例如,使用 gmail 帐户,您可能正在同步...邮件、联系人、日历、财务等...所以这会告诉您类型 的数据和绑定(bind)到帐户的服务。

这对一起提供给 SyncAdapter——更具体地说,您在系统上有一堆 syncAdapter(它们定义可用于同步的权限),并且在以下情况下查找正确的 syncadapter PeriodicSync 触发。

因此,如果您正在编写自己的应用程序来与您自己的自定义服务器同步,您将编写一个知道如何读取和存储您的模式的 SyncAdapter,并且您将定义一个权限。这些只是一个字符串,通常是 java-classpath 样式。 -- "com.example.SyncAdapterSample"

阅读Why does ContentResolver.requestSync not trigger a sync?对于获得工作 SyncAdapter 所需的所有步骤。这绝对是您想要的方式。设置它需要很多步骤,但是一旦框架就绪,它会让您的生活变得更加轻松。

现在 -- 附加功能。这些只是如何完成定期同步的一些选项。一开始你应该对默认值没问题。然后深入The documents .例如,额外的 SYNC_EXTRAS_EXPEDITED 表示这是一个应该立即同步的高优先级更新——通常,调度程序会等待一两分钟,以便它可以批处理请求(并节省电池,通过不让所有的 radio 都打开)时间,但仅限于集中爆发)。通常,在您的 SyncAdapter 变得比简单的基线更复杂之前,您不需要担心额外的问题。

关于android - 以用户定义的频率同步选定的帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com