2013-02-09 135 views
0

我想从SERVICE中的SQLiteDatabse访问数据。我创建了对象数据库,并试图从服务访问数据库,但它不工作。要访问onStart服务方法中的数据库内容,我该怎么做。我搜索了很多,但通过getApplicationContext()方法创建上下文并不适用于我。请帮助我使用代码访问SERVICE中的数据库。从后台服务访问数据库

+0

功能类似于db.isOpen()等的工作的罚款。但是,当我使用db.rawQuery()启动选择查询时,它不起作用。 Plz帮助我检索服务中的值。 – TechHelper 2013-02-09 15:07:46

+0

谢谢朋友。我成功解决了这个问题。非常感谢您的帮助。 – TechHelper 2013-02-09 15:39:02

+0

现在我又遇到了一个问题。我尝试使用rawQuery()以及db.update()和内容值发射更新查询,但仍然无法正常工作。有没有其他的方式来更新服务中的表格?谢谢 – TechHelper 2013-02-09 22:59:47

回答

0

Android Service没有这样的方法onStart()。您可以使用onStartCommand()onCreate()

+0

对不起,这是一个错误。但是,你能告诉我如何从服务中检索数据库的值/更新值。 – TechHelper 2013-02-09 11:02:11

+0

请发表一些你有的代码。 – Kristopher 2013-02-09 11:05:05

+0

SQLiteDatabase db =(new Storage(getBaseContext())。getReadableDatabase(); \t db =(new Storage(getBaseContext())。getWritableDatabase(); – TechHelper 2013-02-09 11:08:31

0

你必须选择,你可以做什么。

弗里斯特选项是以下几点:


您使用永诺静态上下文(例如在MainActivity),在您存取权限永诺的DB。你可以那样做:

public static Activity thi; 

的谢胜利选项是以下几点:


在您的服务,您可以拨打:

this.getApplicationContext(); 

有了这个背景,你也可以写进入你的分贝。

此致

狩猎

+0

我试过像这样:db =(new Storage(this.getApplicationContext())。getReadableDatabase();同样为getWritableDatabase() rawquery()不检索数据 – TechHelper 2013-02-09 11:24:23

+0

你能告诉我更多关于静态上下文吗?理解它。我应该在SERVICE中使用这个静态上下文吗? – TechHelper 2013-02-09 11:25:46

+0

你可以使用它,但你不必喜欢这个你做下面的事情。首先你实例化它。 thi.getApplicationContext();它应该可以正常工作。 ;) – safari 2013-02-09 11:31:14