在我的應用程序中,我需要減少從數據庫插入視頻和其他細節的時間。我正在嘗試在我的應用程序中使用AsyncTask概念。但是當我在doInBackground()中進行插入時,它會給出一個錯誤,另一個類插入。AsyncTask Implementation
abc.insert(arguments); 其中abc是我的數據庫類的對象。
顯示的錯誤是我的類中插入完成時的nullpointerexception。
有沒有解決方案?
感謝,
尼基
在我的應用程序中,我需要減少從數據庫插入視頻和其他細節的時間。我正在嘗試在我的應用程序中使用AsyncTask概念。但是當我在doInBackground()中進行插入時,它會給出一個錯誤,另一個類插入。AsyncTask Implementation
abc.insert(arguments); 其中abc是我的數據庫類的對象。
顯示的錯誤是我的類中插入完成時的nullpointerexception。
有沒有解決方案?
感謝,
尼基
我不完全得到你的情況,但它聽起來像是你是同步問題的受害者 - 多個線程調用你插入的代碼。
如果是這種情況,那麼笑着的解決方案是使用Java聲明在你插入代碼,例如:
public synchronized void insert() { /* code to insert */ }
或
private Object lock = new Object(); // a field of your DBHelper
// somewhere below in your DBHelper
synchronized (lock) {
/* code to insert */
}
在我的情況下,不稱爲多線程。 – Niki 2011-03-13 10:09:04
然後,我們只是不能猜測 - 請分享您的代碼和LogCat輸出。 – 2011-03-13 10:21:33
如果你只是希望添加數據添加到您的數據庫的工作線程沒有UI更新後添加然後使用AsynTask insted的Java線程。
AsyncTask的唯一目的是在執行操作後在後臺執行昂貴的操作並更新UI。
正如Arhimed所建議的那樣,如果您已經觸發了多個AsyncTasks,那麼數據庫鎖定可能會成爲您的問題。
一些代碼會真的幫助你得到更好的答案。 – ninjasense 2011-03-13 08:31:54