2011-03-13 133 views
1

在我的應用程序中,我需要減少從數據庫插入視頻和其他細節的時間。我正在嘗試在我的應用程序中使用AsyncTask概念。但是當我在doInBackground()中進行插入時,它會給出一個錯誤,另一個類插入。AsyncTask Implementation

abc.insert(arguments); 其中abc是我的數據庫類的對象。

顯示的錯誤是我的類中插入完成時的nullpointerexception。

有沒有解決方案?

感謝,

尼基

+1

一些代碼會真的幫助你得到更好的答案。 – ninjasense 2011-03-13 08:31:54

回答

0

我不完全得到你的情況,但它聽起來像是你是同步問題的受害者 - 多個線程調用你插入的代碼。

如果是這種情況,那麼笑着的解決方案是使用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 */ 
} 
+0

在我的情況下,不稱爲多線程。 – Niki 2011-03-13 10:09:04

+0

然後,我們只是不能猜測 - 請分享您的代碼和LogCat輸出。 – 2011-03-13 10:21:33

0

如果你只是希望添加數據添加到您的數據庫的工作線程沒有UI更新後添加然後使用AsynTask insted的Java線程。

AsyncTask的唯一目的是在執行操作後在後臺執行昂貴的操作並更新UI。

正如Arhimed所建議的那樣,如果您已經觸發了多個AsyncTasks,那麼數據庫鎖定可能會成爲您的問題。