【发布时间】:2017-11-12 18:08:50
【问题描述】:
我正在尝试构建一个应用程序,该应用程序从传感器(加速度计和陀螺仪)获取值并将它们存储在文件中,我认为这是 CPU 密集型的。
所以我的问题是我是应该在MainActivity 中创建一个线程并启动我的服务,还是应该在我的MyService 中创建一个线程并做所有必要的事情?
我正在阅读this,它说:
如果您的服务要执行任何 CPU 密集型工作或阻塞操作,例如 MP3 播放或网络,您应该在服务中创建一个新线程来完成该工作。通过使用单独的线程,您可以降低应用程序无响应 (ANR) 错误的风险。
那么哪一个更适合我呢?
【问题讨论】:
-
从传感器读取值并将它们存储到磁盘是 IO 密集型的,但不应该是 CPU 密集型的,除非您在存储之前处理数据。
-
您是说从传感器读取值不会占用大量 CPU 资源吗?我也在计算用户的速度,然后再存储它(但如果我觉得设备的计算量越来越大,这也可以由服务器完成)。
标签: java android multithreading service