2010-07-17 42 views
1

我有一個小部件,它當前從一個數組中取一個隨機字符串,並將其設置爲更新時的文本視圖。這裏的問題是,同一個項目可以連續多次重複使用,因爲字符串是'隨機的'Android Widgets:數據庫的「插入」步驟將在何處發生?

爲了解決這個問題,我打算創建一個持有字符串文本的表,並將int viewednum並在每次調用「獲取文本」時遞增查看的數字。 (在小部件中更新)。

我的問題:如果我將插入語句放在小部件中,每次'update'時都不會插入數據嗎?

它會更好地進入DBadapter類的某個地方嗎?我只是不確定最好的方法,以確保我不輸入重複的數據。如果有更好的選擇,比如在某處保存一個csv文件,並使用它,我可以開放它,它似乎是一個sqlite數據庫是要走的路。

謝謝你的時間。

回答

0

這取決於你的onUpdate方法的作用。如果每次調用onUpdate都會從數據庫中獲取一個隨機的String,那麼這就是放置它的地方。但是,如果您在onUpdate期間沒有獲取字符串,那麼您應該將它放在您訪問數據庫的方法中。我認爲你的困惑是關於onUpdate的目的。每次用戶滾動頁面並看到您的小部件時,onUpdate都不會被調用;它會按照您指定的時間表定期調用,並且在您的情況下,它的整體目的是從數據庫中獲取新的String。

至於你的第二個問題,是的,SQlite數據庫是這樣做的方式:)我還沒有試過保存一個csv文件或類似的東西,但我想這會比僅僅使用一個更復雜的數據庫。

+0

謝謝你的幫助= D – user394877 2010-07-18 04:13:22

0

在要保持唯一性的列上聲明具有UNIQUE約束的數據庫,然後在INSERT語句中通過ON CONFLICT設置所需的行爲。 ON CONFLICT REPLACE ...表示最近的INSERT覆蓋。 ON CONFLICT IGNORE ...保留舊版本。