o19830015 2013-01-14 03:31 采纳率: 12.5%
浏览 2840
已采纳

在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 2013-01-14 07:14
    关注

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了