我初学者在android中想要在android服务中打开sqlite数据库:
写下这段代码:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
try {
SQLiteDatabase db;
db = SQLiteDatabase.openOrCreateDatabase(DATABASE_NAME, this.MODE_PRIVATE, null);
}catch(Exception e){
}
return Service.START_FLAG_REDELIVERY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
但在这一行:
db = SQLiteDatabase.openOrCreateDatabase(DATABASE_NAME, this.MODE_PRIVATE, null);
会发生什么?我该如何解决?谢谢。
答案 0 :(得分:0)
正如错误所述,MODE_PRIVATE
是静态的,并且您尝试使用Context
(this
的实例来访问它,因为Service
是Context
)的子类。
您可以在the documentation中看到MODE_PRIVATE是静态的:
public static final int MODE_PRIVATE
更改您的代码:
db = this.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
我建议你看一下The Java™Tutorials中的Understanding Class Members
另外,请考虑@pskink的评论并阅读openOrCreateDatabase
类中Context
方法的the documentation。