【问题标题】:Android reading data from sqlite when oflline离线时Android从sqlite读取数据
【发布时间】:2013-12-22 16:56:09
【问题描述】:

当我在线时,我将所有数据存储在 sqlite 数据库中,然后当我离线时,我尝试每次都读取存储的数据库。

 if(isOnline(getActivity()))

        {
            db = new DataBaseHandler(getActivity());
            getDataInAsyncTask();
            storeData(db);
            //db.close();
        }
        else
                    {

        Toast.makeText(getActivity(), "No internet",
                    Toast.LENGTH_LONG).show();

            try {
                db.openDataBase();
            } catch (SQLException sqle) {
                throw sqle;
            }
            getDataInDataBase(db);
            flag=0;
        }

在其他条件下,即离线模式下,我执行 db.openDataBase() 以在在线模式下打开/加载早期实现的数据库 db

   public void openDataBase() throws SQLException{

        //Open the database
     String myPath = DB_PATH + DB_NAME;
        myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);}

db.openDataBase 给出 nullpointerException

我哪里出错了?加载/打开已经构建的数据库数据库的方法是否正确?

【问题讨论】:

    标签: android sqlite nullpointerexception android-sqlite


    【解决方案1】:

    您从未初始化过 db 对象。

    放线

    db = new DataBaseHandler(getActivity());

    在 if/else 语句之前或 try/catch 语句内部。

    【讨论】:

      【解决方案2】:
        /*
         * intitlize object globaly
        **/
         db = new DataBaseHandler(getActivity()); 
         if(isOnline(getActivity()))
      
          {
             /**
              *  look at these you are
              *  intialize object when is online
              */
              //db = new DataBaseHandler(getActivity()); 
              getDataInAsyncTask();
              storeData(db);
              //db.close();
          }
          else
                      {
      
          Toast.makeText(getActivity(), "No internet",
                      Toast.LENGTH_LONG).show();
      
              try {
                  db.openDataBase();
              } catch (SQLException sqle) {
                  throw sqle;
              }
              getDataInDataBase(db);
              flag=0;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多