Fix: 修复中台数据存储的 BUG。 调整写入策略
parent
49774c3281
commit
7214c447a6
|
|
@ -35,7 +35,8 @@ namespace Guru
|
||||||
{
|
{
|
||||||
private const float SaveInterval = 3;
|
private const float SaveInterval = 3;
|
||||||
private const string SaveKey = "com.guru.sdk.model.save";
|
private const string SaveKey = "com.guru.sdk.model.save";
|
||||||
private float _lastSavedTime = 0;
|
private DateTime _lastSavedTime = new DateTime(1970,1,1);
|
||||||
|
|
||||||
private bool _noAds = false;
|
private bool _noAds = false;
|
||||||
private readonly BindableProperty<int> _bLevel;
|
private readonly BindableProperty<int> _bLevel;
|
||||||
private readonly BindableProperty<int> _bPlay;
|
private readonly BindableProperty<int> _bPlay;
|
||||||
|
|
@ -55,8 +56,8 @@ namespace Guru
|
||||||
|
|
||||||
public GuruSDKModel()
|
public GuruSDKModel()
|
||||||
{
|
{
|
||||||
|
// 读取内存值
|
||||||
GuruSDKSerializedModel model = LoadModel();
|
GuruSDKSerializedModel model = LoadModel();
|
||||||
|
|
||||||
_uid = model.uid;
|
_uid = model.uid;
|
||||||
_noAds = model.no_ads;
|
_noAds = model.no_ads;
|
||||||
_bLevel = new BindableProperty<int>(model.b_level);
|
_bLevel = new BindableProperty<int>(model.b_level);
|
||||||
|
|
@ -64,6 +65,7 @@ namespace Guru
|
||||||
_purchased = model.purchased;
|
_purchased = model.purchased;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int BLevel
|
public int BLevel
|
||||||
{
|
{
|
||||||
get => _bLevel.Value;
|
get => _bLevel.Value;
|
||||||
|
|
@ -150,9 +152,10 @@ namespace Guru
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存至数据
|
/// 保存至 PlayerPrefs 数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void SaveToPlayerPrefs()
|
/// <param name="writeToDisk"></param>
|
||||||
|
private void SaveToPlayerPrefs(bool writeToDisk = false)
|
||||||
{
|
{
|
||||||
var model = new GuruSDKSerializedModel()
|
var model = new GuruSDKSerializedModel()
|
||||||
{
|
{
|
||||||
|
|
@ -164,21 +167,29 @@ namespace Guru
|
||||||
};
|
};
|
||||||
|
|
||||||
var json = JsonUtility.ToJson(model);
|
var json = JsonUtility.ToJson(model);
|
||||||
PlayerPrefs.SetString(SaveKey, json);
|
if (!string.IsNullOrEmpty(json))
|
||||||
|
{
|
||||||
|
PlayerPrefs.SetString(SaveKey, json);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(writeToDisk)
|
||||||
|
{
|
||||||
|
PlayerPrefs.Save(); // 写入到磁盘
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存数据
|
/// 保存数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="force"></param>
|
/// <param name="forceSave"></param>
|
||||||
public void Save(bool force = false)
|
public void Save(bool forceSave = false)
|
||||||
{
|
{
|
||||||
bool save = force || (Time.realtimeSinceStartup - _lastSavedTime>= SaveInterval);
|
bool writeToDisk = forceSave || (DateTime.Now - _lastSavedTime)>= TimeSpan.FromSeconds(SaveInterval);
|
||||||
if (save)
|
if (writeToDisk)
|
||||||
{
|
{
|
||||||
_lastSavedTime = Time.realtimeSinceStartup;
|
_lastSavedTime = DateTime.Now; // 超过间隔需要强制写入
|
||||||
SaveToPlayerPrefs();
|
|
||||||
}
|
}
|
||||||
|
SaveToPlayerPrefs(writeToDisk); // 每次保存都要设置到 PlayerPrefs 内
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue