防止耗时的线程延迟Android

时间:2016-07-19 10:18:13

标签: java android multithreading

我的Android应用程序中有几个应该同时执行的线程。我没有在几个核心上运行它们。不需要在完全相同的时间进行REAL并行执行。如果Android在不同任务之间切换或暂时暂停某些线程,那就OK了。

问题:某些线程非常耗时且计算成本高(复杂的算法),但并不是实时关键。其他线程和Android UI线程是实时关键的,不应被耗时的进程阻塞或严重延迟。然而,如果没有其他更重要的任务要执行,也应该执行耗时的过程。理想情况下,非常重要的线程应该安全地暂停不太重要的线程。在Java中,人们习惯于实现suspend()命令,但现在它们已被删除。

在Android中解决此问题的推荐方法是什么?在Java中,我会使用Sleep命令或等待并通知方法。 Android推荐的方式是什么?

谢谢你们,伙计们!

修改: 我在想线程。但我写了"进程"而不是"线程",以防常规线程不是解决Android问题的最佳方法。我对任何事都持开放态度。我只有一个应用程序。对不起,如果条款混淆了一点。但我想保持选项和想法的开放性。

感谢您的评论和答案。但我更感兴趣的是通用,推荐,既定策略和良好实践来解决Android中的这类问题。我也可以做一些黑客攻击,但我真的希望有一个干净而成熟的解决方案。我更希望得到一个答案:"常见的既定方法是使用策略A +策略B ......"

1 个答案:

答案 0 :(得分:0)

在我看来,您应该使用其他组件(服务)并将其设置为在不同的流程上运行 - 在此您可以看到how
通过这样做,您可以将所有计算放在与您的人UI component lifecycle无关的不同流程中。

如果算法的逻辑和主UI的依赖性是松散的,我不会尝试通过Threads并发来实现它们。