lam*_*ard 5 android android-alarms android-background android-workmanager
我正在开发一个应用程序,我必须从多个传感器读取数据并每 15 分钟将其发送到远程服务器。这也必须在应用程序关闭/终止时完成,并且我还必须确保它始终执行。我还想确保它(几乎)恰好每 15 分钟发生一次(+-1 分钟差异是上限)。
此时,我找到了 3 个选项:使用 Workmanager、Alarmmanager 或使用前台服务。按照文档,Workmanager 似乎是执行后台任务的方法,但是,在阅读了一些内容之后,Alarmmanager 似乎是一个更安全的选择(Workmanager 有时在打瞌睡模式方面存在问题,并且时间不准确,因为它使用了 Flex持续时间至少 5 分钟)。前台服务实际上不允许执行此类任务(它并不是真正长时间运行,它只是一个周期性任务),并且在较新的 Android 版本中受到限制。您认为使用 Alarmmanger 来完成此任务是个好主意,还是应该使用其他东西?谢谢!
小智 3
TODO后台调度..您可以使用此方法来做您的事情..
科特林;
val service = Executors.newSingleThreadScheduledExecutor()
val handler = Handler(Looper.getMainLooper())
service.scheduleAtFixedRate({
handler.run {
// Do your stuff here, It gets loop every 15 Minutes
}
}, 0, 15, TimeUnit.MINUTES);
Run Code Online (Sandbox Code Playgroud)
爪哇;
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
Handler handler = new Handler(Looper.getMainLooper());
service.scheduleAtFixedRate(() -> {
handler.post(() -> {
// Do your stuff here, It gets loop every 15 Minutes
});
}, 0, 15, TimeUnit.MINUTES);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4363 次 |
| 最近记录: |