2011-03-13 84 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,那么数据库锁定可能会成为您的问题。