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

him*_*eam 2 android broadcastreceiver

我有一个BroadcastReceiver班来接听来电.我想将传入的数字与我的数据库中的数字进行比较.现在我无法理解如何在BroadcastReceiver课堂上使用数据库.我用这种方法DBAdapteronReceive()方法中创建类的对象:

@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);
  }
}
Run Code Online (Sandbox Code Playgroud)

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

him*_*eam 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())
    }
}
Run Code Online (Sandbox Code Playgroud)

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