2013-01-13 132 views
1

我创建了一个类来管理SQLite数据库。它的代码的部分如下:如何在BroadcastReceiver中打开数据库

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

然后,我已创建的另一个类,它是(延伸BroadcastReceiver)的SMS聆听者。这里面类的,我不能用下面的命令创建一个数据库:

db = new Database(this); 

,因为我收到此错误信息:

The constructor Database(SmsListener) is undefined 

我应如何修改代码,可以打开从数据库连接在SmsListener类里面?

回答

6

你的onReceive()方法在BroadcastReceiver得到一个Context通过,使用。

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

另外要注意,一个BroadcastReceiver里面,你只能保证的执行时间为10秒,在这之后,Android的可能会杀死你的接收机。因此,快速处理您正在做的事情,如果数据库操作冗长,请考虑使用单独的Thread

+2

+1 for 10秒info –

0

您的Database构造函数以Context作为其唯一参数。错误消息告诉您thisSmsListener,它不延伸Context

相关问题