gpt4 book ai didi

android - onStateConflict 无冲突

转载 作者:行者123 更新时间:2023-11-30 03:30:22 24 4
gpt4 key购买 nike

我在使用 Google Play 服务的 AppStateClient 时遇到问题。当我让下面的代码只在一个设备上运行时,我会按预期进入 onStateLoaded - 但是当涉及到另一个设备时,我总是会遇到冲突,而不会出现数据冲突

    @Override
public void onSignInSucceeded() {
Log.i("", "StatCount" + playHelper.getAppStateClient().getMaxNumKeys());
playHelper.getAppStateClient().updateState(0, "test".getBytes());
playHelper.getAppStateClient().loadState(new OnStateLoadedListener() {
@Override
public void onStateLoaded(int i, int i2, byte[] bytes) {
Log.i("AppStateTest","load {" + new String(bytes) +"}");
}

@Override
public void onStateConflict(int i, String s, byte[] bytes, byte[] bytes2) {
Log.i("AppStateTest","conflict " + new String(bytes) +" <> " + new String(bytes2));
}
},0);
}

输出:

I/AppStateTest( 4173): conflict test <> test

最佳答案

这是按预期工作的。冲突并不意味着数据 不同。在确定冲突时,数据本身不会被考虑在内。确定冲突的是自该设备上次读取数据以来另一设备写入数据。考虑一下:

  1. 设备 A 读取“Foo”
  2. 设备 B 读取“Foo”
  3. 设备A写入“Foo”
  4. 设备B写入“Foo”

在这种情况下,即使数据相同,设备 B 也会发生冲突(在第 4 步之后的任何时间加载数据时都会发出信号)。不是因为数据不同,而是因为自上次读取数据以来发生了来自另一个源的写入

如果从您的应用程序逻辑的角度来看,这不被视为冲突,则只需调用 resolveConflict 即可解决它。

关于android - onStateConflict 无冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17560240/

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