Записи базы данных Sqlite не извлекаются при принудительной остановке приложения Android - PullRequest
1 голос
/ 16 марта 2012

Я разрабатываю приложение для Android, используя Phonegap 1.4.1.js и jquery.mobile-1.0.1.min.js.Я использую openDatabase () для создания базы данных Sqlite.База данных работает нормально.Здесь проблема в том, что пока приложение работает в фоновом режиме, база данных работает нормально.Если я FORCESTOP приложением вручную, запрос записей базы данных невозможен.Но база данных существует в локальном хранилище устройства.Даже Logcat не отображает никаких предупреждений или ошибок после повторного открытия приложения.

Вот мой код для осуществления входа в систему. Подробные сведения о пользователе:

     function onDeviceReady() 
     {
          CheckLoginData();
     }
     function checkLoginData() {
    var  db = openDatabase("LoginData", "1.0", "LoginData", 200000);    
        db.transaction(queryLoginData, errorLoginData);

}
function queryLoginData(tx) {
    tx.executeSql("SELECT * FROM LoginData where LoginDate='" + InsertCurrentDate + "'", [], querySuccessLoginData, errorLoginData);
}

function querySuccessLoginData(tx, results) {
    // the number of rows returned by the select statement
      console.log("Insert ID = " + results.rows.length); 
      var len = results.rows.length;
      if((len > 0)) {
          var DBdate = results.rows.item(0).LoginDate;
          var date= new Date();
          var month = date.getMonth()+1;
          var day = date.getDate();
          var year = date.getFullYear();
          var systemDate = year+'-'+month+'-'+day;
          //alert(DBdate +  '    '+systemDate);
          if(DBdate==systemDate)
              {
                    //alert(DBdate +  '    '+systemDate);
                    document.location.href = "#recent";
              }
          else
              {
                    alert("Please Login for Today");
                    document.location.href = "#login";
                    $('#useridBox').val('');
                    $('#passwdBox').val('');
              }
        }
        if(len==0){
            var strURL = document.location.href;
            document.location.href = strURL+"#login";
        }
}

function errorLoginData(err) {
     var strURL = document.location.href;
    document.location.href = strURL+"#login"; 
    //alert("Error while Retrieving Data");
}

Есть ли какие-либо проблемы в коде,Пожалуйста, помогите мне, как получить записи базы данных при принудительной остановке приложения.

1 Ответ

1 голос
/ 16 марта 2012

Я бы предпочел, чтобы вы использовали последнюю версию phonegap, которая является Cordova-1.5.0. Может быть некоторая проблема в Phonegap (который использует базу данных по умолчанию, предоставленную веб-представлением) при принудительной остановке приложения.

Я изменил Cordova (https://github.com/Coder-Nasir/incubator-cordova-android) таким образом, чтобы он создавал базу данных в расположении Android по умолчанию, равном /data/data/package-name/databases/

С помощью этой простой команды

window.openDatabase("something", "1.0", "PhoneGap Demo", 0);

Вы получите желаемый файл some.db в указанном выше месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...