Thread-Sleep 奇怪的行为

Posted

技术标签:

【中文标题】Thread-Sleep 奇怪的行为【英文标题】:Thread-Sleep strange behavior 【发布时间】:2019-06-22 09:31:01 【问题描述】:

我已经构建了一个简单的 android 应用程序。 一个Thread正在收集数据,休眠500ms,收集等等。 该应用程序应该无休止地执行此操作(直到我停止它)。

现在线程在前台服务中运行(在 Activity 和后台服务中,android 会在几分钟后杀死线程/服务)。

如果收集到一些数据,线程将它们保存在文本文件中。 (它在 1 分钟内收集 120 个值,形成平均值并用时间戳保存)。

当我查看文本文件时,每分钟都有 1-2 小时的数据 - 就像我想要的那样。 但是然后是10分钟的缺勤数据,然后30分钟是每分钟的数据,然后是2小时的缺勤数据,依此类推。

我想不通: - 如果android有时不保存数据, - 或者每 500 毫秒连续睡眠一次(有时睡 2 小时?)是愚蠢的, - 或android暂停打洞服务(随机) - ...

有没有更好的方法来定期收集数据?

【问题讨论】:

您能告诉我们更多关于如何收集数据的信息吗?你确定你需要它来经常运行它吗?您是否考虑过安排定期作业? 实际上它只是生成随机的 0/1 。 稍后它应该收集并保存传感器数据 - 至少每 10 秒一次(例如磁场值) 请查看 leonardkraemer 的回答 here,他解释了一切。 另见this 【参考方案1】:

Android 进入闲置模式。

我用部分唤醒锁解决了这个问题。

【讨论】:

以上是关于Thread-Sleep 奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章

parseInt() 函数的奇怪行为

QLcdNumber 奇怪的行为

iOS奇怪的委托行为?

AdditionalSafeAreaInsets 的奇怪行为

UITableView 奇怪的行为

UIPopoverController 奇怪的行为