在我的应用程序中,我需要减少从数据库插入视频和其他细节的时间。我正在尝试在我的应用程序中使用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