在SQLite中写入数据时的致命信号6(SIGABRT)

时间:2014-08-17 14:03:53

标签: android sqlite signals

然后,当我在数据库中长时间写入数据时,我收到此错误消息:

  

08-17 15:45:47.220:A / libc(10676):致命信号6(SIGABRT)位于0x000003b2(代码= 0),线程10676(mb.bat)

我已经发现,无论什么时候机器人都认为ui被冻结,或者当某些东西阻塞ui线程时,这就会出现。

但是,我想知道的是: 写作和一切都是由我自己的服务启动的,它应该在后台运行,独立于主线程。对? 要使用sqlitehelper,我需要通过简单地调用

来获取服务的上下文
  

getApplicationContext()

这有什么问题吗?

此外: 在致命信号之后服务重新启动,虽然我不确定,这是否可以由我自己的代码触发,但我没有找到与此相关的任何内容。

1 个答案:

答案 0 :(得分:0)

android 中的服务不在单独的线程形式UI线程中运行,就像它们在主线程上运行的活动一样。您应该定义一个线程并运行它,而不是IntentService。但是要小心,一旦完成了意向服务工作,它就会自我控制。

检查这些: link 1 link2