gpt4 book ai didi

android - TimerTask 与 AlaramManager,我应该使用哪一个?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:41 25 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序在屏幕打开后每 10 分钟触发一次操作(比如 toast 消息),并在屏幕关闭后停止操作。为此,我使用了 TimerTask。我应该开始使用 AlaramManager 而不是 TimerTask 还是继续使用 TimerTask ?我知道两者之间的区别,但不知道该使用哪个。

最佳答案

不能'同意nikis'的回答

TimerAlarmManager 是满足不同需求的解决方案。

计时器仍然是一个“任务”,这意味着这是您的应用程序的一个线程,这意味着您的应用程序的某些组件必须在设备上运行才能使计时器保持 Activity 状态。如果您为 10 分钟的事件设置计时器 - 您无法确定您的应用程序是否会在某个时刻被系统处理。如果设备将进入休眠模式,您的计时器可以停止。为防止出现此类行为,您必须使用 PowerLock 并耗尽电池电量

AlarmManager 是系统服务(在您的应用程序外部运行),这意味着即使您的应用程序在设置警报后被终止,挂起的 Intent 也会被发送。

一些例子:您必须每 1 秒在 View 上闪烁一些“led”——使用计时器——只有当应用程序在前台时才需要它,间隔很短——没有必要使用 AlarmManager 来完成这样的任务。

您在 10 秒后运行了一些任务 - Handler.postDelay(); 将是最好的解决方案,该工作将在主线程 (UI) 上完成。

您必须每 10 分钟检查一次设备上是否有您应该推送到服务器的新内容 - 使用 AlarmManager - 您的应用程序不需要一直处于 Activity 状态,只需让系统每 10 分钟开始您想要的工作 - 仅此而已。

关于android - TimerTask 与 AlaramManager,我应该使用哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23387775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com