0
我正在开发一个多线程应用程序,它使用线程和异步任务来在多个线程上执行代码。多核处理器上的Android错误
我有一个AsyncTask向数据库添加一行,然后发送一个API请求。一旦收到API请求回复,它就会更新数据库中的行。数据库适配器对象从UI线程传递给AsyncTask。
不幸的是,AsyncTask在多核设备(例如Asus Transformer)上不起作用。当我尝试第一次将行添加到数据库时,发生空指针异常。
我不知道为什么会发生这种情况,但它可能与'内存可观察性'下docs中的内容有关。
请在错误出现的地方张贴一些代码,否则我们无法知道发生了什么。 – Tudor 2012-01-05 17:21:16
除非你在做一些奇怪的事情,否则在多核设备上应该没什么区别。你只是在处理线程,而虚拟机处理核心。更有可能你的测试手机速度很快,而且你遇到了在慢速手机上遇到的竞争状况。 – 2012-01-05 17:28:17
如果它有助于缩小问题,我有一个多核手机,并使用AsyncTask在我的应用程序中运行多个并发线程,但没有问题。 – Pedantic 2012-01-05 17:29:03