在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给我这么好的建议,但我对安卓系统还不熟悉,你能告诉我如何才能为这个案例提供服务……再次感谢你考虑过这个问题吗?