【发布时间】:2013-12-03 19:42:41
【问题描述】:
我在这里转贴了my question from Android Enthusiasts,因为这更像是一个编程问题,并且被推荐了。 反正。这里是:
我正在制作一个应用程序,它会更改 ROM 键值的 build.prop。然而,Android 经常给我一个 ANR 警告,因为我正在 UI 线程上完成所有工作。在 Android 文档中,它告诉我应该使用工作线程,而不是在 UI 线程中做任何工作。但是,我正在构建这个系统应用程序,以便与单核设备的 ROM 一起使用。
我为什么要使用工作线程,因为这不是效率低下吗?因为,Android 必须暂停 UI 线程,加载工作线程,当再次使用 UI 时,暂停工作线程并再次加载 UI 线程。这不是效率低吗?
那么,我应该使用工作线程(这会减慢 UI 线程的速度)还是只在 UI 线程上完成所有工作*即使应用程序 UI 真的很慢)?
【问题讨论】:
-
使用任何常见的最佳实践来实现您的代码。在这种情况下,使用工作线程。
-
不用担心核心。当 ui 线程不工作时,调度程序将允许您的工作线程运行,从而提供流畅的用户体验。如果您的 UI 因工作线程而变慢,请减少这些线程的数量/优先级。
-
使用工作线程。将其优先级降低到低于 UI 的优先级。结果 - UI 响应正常,工作仍然(几乎)同时完成。
-
@MartinJames,我不知道该怎么做,我想我在文档中有更多的阅读要做!
标签: android multithreading process