0

SQLiteOpenHelper.onCreate期間,我需要向數據庫添加各種行。爲了不使用冗餘代碼,我想調用使用ContentResolver的包裝函數 - 也就是應用程序級代碼使用的函數。可以在SQLiteOpenHelper中使用ContentResolver嗎?

但是,這樣做意味着ContentProvider將調用getContentResolver,並最終產生對其自身的遞歸調用。這個可以嗎?我會在某些環境中遇到問題嗎?有一個更好的方法嗎?

我意識到這不是最有效的方式來做到這一點,但數據庫創建應該很少發生。我更大的擔心是避免多餘的代碼 - 具有相同的ContentValues .put調用的兩個函數。

回答

0

Peri,

什麼意思是沒有冗餘代碼。您應該能夠使用SqLiteOpenHelper來滿足您的需要,而不必使用內容解析器。讓我知道你在做什麼,我可以分享一些代碼。我在項目中廣泛使用SqLiteOpenHelper。

+0

當然,如果我不使用ContentResolver,這很容易。也許我不需要一個。我正準備讓數據庫保持持久性,而不管我將來對應用程序做什麼。更具體地說,我需要做一堆插入。插入代碼使用ContentResolver存在於包裝器中。但是,從SQLiteOpenHelper,我該如何獲得該插入代碼? –

+0

更好的是,最終,我希望活動檢測數據庫是否存在,並最終允許用戶連接到現有數據庫(在雲中)或在本地創建一個數據庫。 (雖然這是一種方法。) –

+0

嗯,我重構了代碼,所以我可以在「圍牆兩邊」分享它。沒有我想要的那麼幹淨,但至少沒有什麼是多餘的。 –

相關問題