我們觀察到,在某段時間訪問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