我创建了一个类来管理 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 监听器(扩展 BroadcastReceiver
)。在此类内部,我无法使用以下命令创建数据库:
db = new Database(this);
因为我收到此错误消息:
The constructor Database(SmsListener) is undefined
我应该如何更改代码才能从 SmsListener
类内部打开数据库连接?
最佳答案
您在 BroadcastReceiver
中的 onReceive()
方法获得了一个 Context
,使用它。
@Override
public void onReceive(Context context, Intent intent){
db = new Database(context);
//more stuff
}
另请注意,在 BroadcastReceiver
中,您只能保证 10 秒的执行时间,之后,Android 可能会终止您的 Receiver。所以要快速处理您正在做的事情,如果数据库操作很长,请考虑使用单独的 Thread
。
关于java - 如何在 BroadcastReceiver 中打开数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14309631/