在什么特定情况下会发生这样的超时?我安排一个警报来定期启动一个服务,所以我创建了一个PendingIntent来定位服务(通过调用PendingIntent.getService(......)),并将它传递给AlarmManager setRepeating(..... ) 方法。报警类型是RTC_WAKEUP。服务正在死亡,在日志中看到“ActivityManager:超时执行服务......”。原因?
正如目前实现的那样,服务不会产生一个单独的线程来完成它的工作,在onStart()中完成所有工作。
该服务执行一些数据库查询,并且我怀疑我现在经常在日志中看到“超时执行服务...”消息的原因,因为我的服务死掉了,这些查询需要更长时间DB增大。
但是,特别是会导致执行超时。
- 是不是在做main线程的工作?
所以,从产卵在onStart一个单独的线程(),允许在onStart()来及时返回,而DB查询等方式对单独的线程运行将完全消除此问题?还是有什么我失踪?
我使用AsyncTask来执行数据库操作... – 2013-07-25 10:22:09