我很困惑哪种方式最好让多个表在我的应用程序中同步.
我有一个内容提供商,并打算有多个表(事件,用户等).我还有一个应用程序应该与之通信的休息服务器.我想知道处理每个表的多个连接(put,get,post和delete)的最佳实践是什么.他们也有关系,就像一个用户可以参加活动,但也是活动的所有者.因此,如果我已经为该用户创建了用户和所属事件,我可以上传用户,从服务器获取有关用户的信息,使用有关用户的信息上传事件,获取该信息,然后更新用户使用新的事件信息.
解决这些问题的最佳方法是什么?我应该创建一个聚合应该同步的所有数据的方法(http://example.com/sync)吗?或者我应该坚持,有时约15-20个请求?
我正在努力建立将我的应用程序*.csv文件与理想dropbox帐户同步的机会.到目前为止我做了什么:
com.dropbox.client2.android.AuthActivity清单release-key-storedropbox service问题是我无法理解APP_KEY和SECRET_KEY在哪里得到这个问题?
当我尝试启动应用程序时,我得到了这个:
05-22 12:31:54.762: E/AndroidRuntime(5587): at com.dropbox.sync.android.CoreAccountManager.initNativeLib(CoreAccountManager.java:109)
05-22 12:31:54.762: E/AndroidRuntime(5587): at com.dropbox.sync.android.CoreAccountManager.<init>(CoreAccountManager.java:89)
05-22 12:31:54.762: E/AndroidRuntime(5587): at com.dropbox.sync.android.DbxAccountManager.getInstance(DbxAccountManager.java:112)
Run Code Online (Sandbox Code Playgroud)
有什么线索我做错了什么?
从不同的goroutines访问不同的struct成员是否安全?
我明白,在没有同步的情况下写入同一个变量是很糟糕的:
package main
type Apple struct {
color string
size uint
}
func main() {
apple := &Apple{}
go func() {
apple.color = "red"
}()
go func() {
apple.color = "green"
}()
}
Run Code Online (Sandbox Code Playgroud)
但是你可以在没有任何同步的情况下写入不同的struct成员吗?
package main
type Apple struct {
color string
size uint
}
func main() {
apple := &Apple{}
go func() {
apple.color = "red"
}()
go func() {
apple.size = 42
}()
}
Run Code Online (Sandbox Code Playgroud)
或者我应该使用chan或sync.Mutex为此?
是否可以在Visual Studio 2010中的计算机之间同步设置?我知道您可以通过导出设置然后将它们复制到另一台计算机或将它们放在投递箱或其他东西中来实现.所以我想知道是否有其他方法可以做到这一点?
我想知道是否可以使用iCloud在设备之间同步应用程序的首选项文件.我所讨论的首选项文件是由NSUserDafults创建的com.domain.appname.plist文件,用于存储应用程序的首选项.
我想选择让我的应用程序首选项文件在两个不同的设备(例如iPad和iPhone)之间保持同步.这是iCloud同步的可接受使用吗?或者我是否需要将plist文件转换为不同类型的文档,将其存储在云端,并在检索时将其转换回应用程序的首选项文件?
谢谢!
我想将本地目录同步到Google云端存储中的存储分区.我想复制远程不存在的本地文件,跳过已经存在的远程和本地文件.使用GSUtil可以做到这一点吗?我似乎无法为GSUtil找到"同步"选项或"不要覆盖".可以编写这个脚本吗?
我在Linux上(Ubuntu 12.04)?
我有一个与使用AccountManager和Sync的Web服务相关联的应用,允许用户通过应用登录到他们的帐户并同步他们的数据(这是自定义数据,而不是Google帐户使用的联系人或其他任何内容).AFAIK,我正按照我应该的方式做所有事情.当用户通过我们的API登录时,我将他们的帐户保存到Android AccountManager:
AccountManager am = AccountManager.get(context);
m.addAccountExplicitly(new Account(username, ACCOUNT_TYPE), account_id, user_data);
Run Code Online (Sandbox Code Playgroud)
我已将ACCOUNT_TYPE定义为应用程序的包名称,这应足以将其与任何其他帐户类型区分开来.
添加帐户后,我会将其设置为自动同步:
ContentResolver.setSyncAutomatically(account, AUTHORITY, true);
ContentResolver.addPeriodicSync(account, AUTHORITY, new Bundle(), SYNC_FREQUENCY_SECONDS);
Run Code Online (Sandbox Code Playgroud)
我已将SYNC_FREQUENCY_SECONDS定义为86400(即1天).
同样,如果用户注销,我只需从AccountManager中检索他们的帐户并调用removeAccount()将其删除.很好,很简单.
同步是通过我自己的代码执行的,因为它是正在同步的所有自定义数据,并且一切正常.然而,令我发疯的是,无论何时我使用此代码添加或删除帐户(我自己的类型),它都会立即触发设备上所有Google帐户的同步.这意味着,在同步我的数据之前,首先必须同步所有电子邮件,日历数据,联系人,Google Play杂志,Google+数据和图片等等.这可能需要几分钟,在此期间我的应用只是耐心等待轮到同步数据.这非常令人沮丧,我的用户很难理解为什么一旦他们登录就需要这么长时间来同步他们的数据(更不用说当它同步那么多数据时,手机有慢慢的趋势)几乎到了无反应的程度).
我在这里做错了吗?我的代码中是否存在无意中告诉Android的内容,"嘿,现在就去同步所有Google数据!"?或者,它是Google必须忍受的Google帐户/同步框架中固有的东西?
我最近在家用机器(OSX 10.9)和远程服务器(Ubuntu 12.04 64位)上安装了unison.
我在这两个地方安装了2.40.102版本.我在Mac上使用'brew install unison',我在服务器上从源代码编译.
问题是我不能让"重复观察"工作.它连接,但后来什么也没做.
Contacting server...
Connected [//... -> //...]
Run Code Online (Sandbox Code Playgroud)
就是这样.如果我传递任何东西,比如'1'到-repeat旗帜它就可以了.
还有什么我需要做的事情才能让它在变化时观察变化和同步吗?
我有一个简单的离线html5/javascript单html文件Web应用程序,我存储在我的Dropbox中.这是我编写的一种时间跟踪工具,它将应用程序数据保存到本地存储.由于它是我自己使用的,我喜欢离线应用程序的便利性.
但是我有几台计算机,我一直试图想出任何一种hacky方式来同步我的各种机器之间的这个应用程序的数据(目前正在使用本地存储).
Chrome似乎允许数据同步,但仅适用于chrome扩展.我还以为我可以让网页自动保存/加载来自Dropbox文件夹中文件的数据,但似乎没有办法在没有用户提示的情况下自动与特定文件同步.
我认为"明显"的解决方案是将页面放在服务器上并将数据存储在数据库中.但是假设我不想要一个需要我在服务器上维护应用程序的解决方案 - 是否有另一种方法,无论如何hacky,凑齐同步?
我甚至找了一段时间看看是否有供应商提供网络数据库服务 - 我可以说,按需要发布/获取一小撮json,然后以某种方式让我的离线应用程序与此服务同步,但同样-origin政策似乎使该计划无效(此外我找不到这样的服务).
使用chrome,谷歌驱动器,Dropbox或其他一些我不知道的工具,是否有一个棘手/偷偷摸摸的解决方案?或者我是否设置了自己的服务器?