延迟后台任务在一系列事件后运行一次

时间:2019-01-29 08:26:01

标签: android multithreading background android-handler android-background

我通过在HandlerThread内使用Service的组合来实现这一点,使用removeCallbacks中的Handler来完成任务,然后将postDelayed任务重新确保它仅运行一次,并且从上一个事件开始经过所需的延迟之后,请按住WakeLock以确保设备在任务到期并完成其运行之前不会进入睡眠状态。 / p>

这是很久以前的事了,我想在实现这一点的同时受益于对更新的Android组件的内置支持,以更好地利用电池,对网络类型敏感,仅在充电时运行等。我想Android自那么现在可能会有更好的选择,例如,可能有一种新的WorkManager可以派上用场的方式。

是否有更好的选择来使用较新的android组件和库来实现它,从而使模板代码更少,性能可读性和可靠性比我以前实现的方法更好?

1 个答案:

答案 0 :(得分:1)

编写大量的多线程Android应用程序可能非常困难且不堪重负,因为需要处理的移动部件很多。这以及许多其他原因说服我们在我们的Android应用程序中大量使用RxJava

我们都知道(并且秘密地​​承认)Java中的多线程处理有多困难。在后台线程中执行一段代码并将结果返回到UI线程中,这听起来似乎很容易,但是实际上,有很多棘手的情况需要解决。

RxJava 使在您选择的任何线程中执行多个复杂操作变得异常容易,从而保持了适当的同步并允许您无缝切换线程。

在这里查看更多信息:   https://blog.gojekengineering.com/multi-threading-like-a-boss-in-android-with-rxjava-2-b8b7cf6eb5e2