2013-02-09 136 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