2 o19830015 o19830015 于 2013.01.14 11:31 提问

在BroadcastReceiver开放数据库

创建了一个类管理SQLite数据库,核心代码如下:

public class Database extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "name";
private static final int DATABASE_VERSION = 1;

public Database (Context ctx) {
    super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}

然后创建了另一个类,是一个SMS监听器(extend BroadcastReceiver),然后想用下面代码在这类中创建数据库,但是没实现:

db = new Database(this);

报错信息如下:

The constructor Database(SmsListener) is undefined

怎么样能在SmsListener类中开放一个数据库连接?

1个回答

Kill_it
Kill_it   2013.01.14 15:14
已采纳

BroadcastReceiver中的onReceive()方法 method得到一个 Context。

@Override
public void onReceive(Context context, Intent intent){
    db = new Database(context);
    //more stuff
}

要知道在BroadcastReceiver中执行时间最多为10秒,如果超时,android就会终止Receiver。因此需要快速完成操作,如何数据库操作时间很长,就试试用单独的线程。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!