我们观察到,在某段时间访问JSONStore API的挂起很长时间,为了使其工作,我们必须再次调用该函数,或者必须将应用带到背景&再次带到前台。检索数据时JSON存储挂起
注意:当应用程序面临此问题时,行为是相同的,直到我们重新安装应用程序或重新启动设备。
这似乎没有任何适当的场景,我们搜索了很多文章,但没有找到任何解决方案,任何解决方案都是值得欢迎的。
我们在S5和S4等Android设备上观察到此问题。
这里是我的代码片段:
function getWidgets(w_id, getWidgetsSuccessCallback, getWidgetsFailureCallback) {
var query = { user_id : w_id };
var options = {};
WL.JSONStore.get(StorageCollections.widgets).find(query, options)
.then(function(arrayResults) {
var count = arrayResults.length;
Logger.debug("getWidgets: success, count: " + count);
...
getWidgetsSuccessCallback(widgets);
})
.fail(function(errorObject) {
Logger.error("getWidgets: failed, error: " + JSON.stringify(errorObject));
getWidgetsFailureCallback(errorObject);
});}
日志时,一切工作正常http://pastebin.com/NVP8ycTG
日志访问JSON店内挂起时,它会工作,只有当拍摄背景&带回前景再次http://pastebin.com/eYzx57qC应用
JSON存储初始化如下
var collections = {
// User
user: {
searchFields: {
user_id : 'string',
user_name : 'string',
first_name : 'string',
last_name : 'string',
}
}
}};
// Storage encryption
var options = {};
if (key) {
options.password = key;
options.localKeyGen = true;
}
// Open the collection
var promise = WL.JSONStore.init(collections, options)
.then(function() {
Logger.debug("initializeAppStorage: " + JSON.stringify(collections) + " completed");
initAppStorageSuccessCallback(true);
return true;
})
// Handle failure
.fail(function(errorObject) {
Logger.error("initializeAppStorage: failed, error: " + errorObject.toString());
initAppStorageFailureCallback(errorObject.toString());
return false;
});
return promise;
谢谢。
您如何初始化这个店? – 2014-12-02 05:22:57
是的,我编辑了我的评论;我们正在如上所述进行初始化。 – penguin 2014-12-02 06:24:45
什么是StorageCollections.widgets? – 2014-12-02 06:35:53