Android:如何在BroadcastReceiver类中访问数据库?

时间:2012-07-30 10:50:44

标签: android broadcastreceiver

我有一个BroadcastReceiver课程来接听来电。我想将传入的数字与我的数据库中的数字进行比较。现在我无法理解如何在BroadcastReceiver类中使用数据库。 我以这种方式在DBAdapter方法中创建了onReceive()类的对象:

@Override
public void onReceive(Context context, Intent intent) {

  DBAdapter db = new DBAdapter(contenxt);
  Cursor c = d.getAllData();
  while(c.moveToFirst){
      do{
            Log.v("Data : "+c.getString(2));
        }
        while(c.moveToNext);
  }
}

上面的代码片段抛出NullPointerException。请有人帮助我实现这一目标。

1 个答案:

答案 0 :(得分:5)

最简单的方法如下,

SQLiteDatabase db;
@Override
public void onReceive(Context context, Intent intent) {
    db = context.openOrCreateDatabase("PhoneDB2", 0, null);
    Cursor cur = db.rawQuery("SELECT * From checkedNumbers", null);

    if(cur.moveToFirst()) {
        do {

        } while(cur.moveToNext())
    }
}

这是上述问题的最佳解决方案..................