从-extends SQLiteOpenHelper崩溃

时间:2014-03-01 18:44:30

标签: sqliteopenhelper

我有一个多活动应用程序,它使用SQLite DB并按设计工作。但是,我正在添加一个功能,现在无法写回数据库

为了保持简单,我将重点关注2个活动/类(Activity1和Activity2)和DBHelper类,我将使用伪代码。

定义了类:

public class Activity 1  extends Activity implements OnClickListener  
public class Activity 2  extends Activity implements OnClickListener  
public class DBHelper extends SQLiteOpenHelper  

活动1使用DBHelper在两个不同的场合从两个不同的表中读取DB中的数据而没有任何问题。然后关闭数据库。

A1读取并显示一些数据(以及其他一些内容)然后将从DB读取的数据传递给活动2.

正如我所说,A2对数据执行了一些魔术......没有问题。

当我尝试从活动2中打开数据库时,事情就转向了。

我在DBHelper类中写了一个新方法:

  1. 打开数据库
  2. WRITE数据
  3. 关闭数据库
  4. 我们将调用DBwriter()来保持简单,但是当我调用DBwriter()FROM A2时它会崩溃(NullPointerException)。

    然而,当我通过调试器步进时,我可以看到它永远不会到达方法DBwriter()。在调用DBwriter()的行上,它会爆炸并在地板上留下一团糟。

    在我的头上刮了一会儿(然后将所有的1和0扫地出去)之后,我编辑了A1并打电话给DBwriter()

    并且它不会崩溃。它通过这种方法走了一步。所以,DBwriter()没有问题。

    我编辑了DBwriter() - 记得它位于DBHelper类中 - 并删除了一切,但裸骨。像这样:

    public void DBwriter ()  
    { int Debug = 1; //  this is so I can place a Break Point  
    }  
    

    然而,在A2中,当CALLING DBwriter()并且甚至没有到达代码的第一行时它仍然会崩溃!!

    我怀疑它与扩展SQLiteOpenHelper

    有关

    在A1中,有一个变量:private DBHelper m_myDbHelper

    现在......当我在第二个Activity中的SEPARATE类中创建变量的第二个实例时,A2 ...这会导致某些事情爆炸,因为我正在使用DBHelper两次吗?我可以创建一个新的写作类,但我认为它应该来自ONE DBHelper Class。

    我在构造函数或onCreate

    中没有做任何WEIRD

    这是构造函数:

    public DBHelper (Context context) {
      super (context, DB_NAME, null, 1);  
      this.myContext = context;  
    }  
    

    这是onCreate:

    @Override  
    public void onCreate (SQLiteDatabase db) {    
    }
    

0 个答案:

没有答案