Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中如何访问BroadcastReceiver类中的数据库?_Android_Broadcastreceiver - Fatal编程技术网

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

在Android中如何访问BroadcastReceiver类中的数据库?,android,broadcastreceiver,Android,Broadcastreceiver,我有一个BroadcastReceiver类来接收来电。我想将传入的数字与数据库中的数字进行比较。现在我不明白如何在BroadcastReceiver类中使用数据库。 我以这种方式在onReceive()方法中创建DBAdapter类的对象: @Override public void onReceive(Context context, Intent intent) { DBAdapter db = new DBAdapter(contenxt); Cursor c = d.getA

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

@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。请有人帮我做到这一点。

最伟大、最简单的方法如下:

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())
    }
}

这是上述问题的一个很好的解决方案………..

在哪一行你得到空指针,除了不要在
广播接收器中使用
数据库
启动
服务
,而是在使用
数据库
的地方。在c.moveToFirst行中..这里我得到了空指针错误…谢谢Bieglex给我这么好的建议,但我对安卓系统还不熟悉,你能告诉我如何才能为这个案例提供服务……再次感谢你考虑过这个问题吗?