我是android的初学者,想在这段代码中打开数据库:
public class AlarmReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
SQLiteDatabase db;
db=SQLiteDatabase.openOrCreateDatabase(DATABASE_NAME,context.MODE_PRIVATE, null);
//...
}catch(Exception e)
{
}
}
在这一行:
db=SQLiteDatabase.openOrCreateDatabase(DATABASE_NAME,myContext.MODE_PRIVATE, null);
我该如何解决?谢谢。
答案 0 :(得分:1)
使用context
onReceive
中的第一个参数来调用openOrCreateDatabase
方法:
db=SQLiteDatabase.openOrCreateDatabase(DATABASE_NAME,
context.MODE_PRIVATE, null);
为什么我无法在android BroadcastReceiver中打开sqlite数据库?
由于广播生命非常少,因此无法在onReceive
方法中执行长时间运行的任务,如API调用,数据库操作或任何其他花费更多时间的任务。
建议:而不是在onReceive
内执行任务,而是使用IntentService来执行任务,并在任务完成时停止自我。