“a”的合理指标是什么;“长跑”;Android中的任务
在上下文中,我阅读了Tejas Lagvankar在上找到的Android线程机制的比较。在这篇文章中,以及在许多其他文章中,甚至在Android文档中,“长时间运行”任务被反复使用,但我还没有看到一个真正的定义,说明什么是长时间运行的任务 鉴于我们必须考虑基于应用程序API级别和其他支持的限定符的不同设备功能,将任务限定为“长时间运行”的下限是多少。(最好采用测量单位,如毫秒) 如果主线程被阻塞超过5秒,Android将声明“应用程序无响应”或ANR。实际上,用户注意到的延迟只有100毫秒,所以这是一个“最坏情况”的起点。如果您的操作可以以任何方式阻止(文件I/O、图像解码、网络访问等),那么您应该遵从bg线程。如果主线程被阻止超过5秒,Android将声明“应用程序无响应”或ANR。实际上,用户注意到的延迟只有100毫秒,所以这是一个“最坏情况”的起点。如果您的操作可以以任何方式(文件I/O、图像解码、网络访问等)阻塞,那么您应该遵从bg线程 我还没有看到一个真正的定义,什么才是长期运行的任务 这在很大程度上取决于具体情况。此外,您假设每个使用“长期运行”一词的人都以相同的方式这样做 将任务限定为“长期运行”的下限是多少 嗯,这不能用抽象的方式来回答 例如:“a”的合理指标是什么;“长跑”;Android中的任务,android,Android,在上下文中,我阅读了Tejas Lagvankar在上找到的Android线程机制的比较。在这篇文章中,以及在许多其他文章中,甚至在Android文档中,“长时间运行”任务被反复使用,但我还没有看到一个真正的定义,说明什么是长时间运行的任务 鉴于我们必须考虑基于应用程序API级别和其他支持的限定符的不同设备功能,将任务限定为“长时间运行”的下限是多少。(最好采用测量单位,如毫秒) 如果主线程被阻塞超过5秒,Android将声明“应用程序无响应”或ANR。实际上,用户注意到的延迟只有100毫秒,所
- 等等
AlarmManager
,GCM消息),您将需要一个WakeLock
- 等等
AlarmManager
,GCM消息),您将需要一个WakeLock
虽然我的选择背后有一些数学因素,但最终,它们是我的选择,其他安卓专家可能还有其他选择。我不会试图用一定的时间来定义长时间运行的任务,而是根据任务的内容来定义。您可以在UI线程上成功地执行文件I/O操作,因为在您的测量中,它们需要几毫秒的时间,但可能会发生I/O阻塞,并且您的代码将导致ANR。另一个例子是,当解析json数据时,如果它很小,那么它会很快,但是如果它变大,那么它也可能导致ANR,或者甚至OOM(超出我的权限)