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 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题