Android-安排每10毫秒发生一次事件?

Android-安排每10毫秒发生一次事件?,第1张

概述我正在创建一个允许通过高频声波进行非常低带宽通信的应用程序.我已经可以创建一个频率并进行傅立叶变换(借助Moonblink的Audalyzer开源代码).但是,这是我的问题:我无法使代码以正确的时间运行.假设我要每10毫秒执行一段代码,我该怎么做呢?我已经尝试过使用TimerTask,但是在代码实

我正在创建一个允许通过高频声波进行非常低带宽通信的应用程序.我已经可以创建一个频率并进行傅立叶变换(借助Moonblink的Audalyzer开源代码).

但是,这是我的问题:我无法使代码以正确的时间运行.假设我要每10毫秒执行一段代码,我该怎么做呢?

我已经尝试过使用TimerTask,但是在代码实际执行之前会有很大的延迟,例如最长100ms.

我也通过简单地Ping当前时间并仅在该时间过去后才执行来尝试此方法.但是仍然存在延迟问题.你们有什么主意吗?

Thread analysis = new Thread(new Runnable(){    @OverrIDe    public voID run()    {        androID.os.Process.setThreadPriority(androID.os.Process.THREAD_PRIORITY_URGENT_disPLAY);        long executeTime = System.currentTimeMillis();        manualAnalyzer.measureStart();        while (FFtransforming)         {                      if(System.currentTimeMillis() >= executeTime)            {                //reset the timer to execute again in 10ms                executeTime+=10;                //Perform FourIEr transform                manualAnalyzer.doUpdate(0);                //Todo: Analyze the results of the transform here...            }        }        manualAnalyzer.measureStop();    }});analysis.start();

解决方法:

您的线程/循环策略可能与您将要达到的目标差不多.但是,10ms并不是很多时间,大多数AndroID设备都不是超级强大的功能,而傅立叶变换是很多工作要做.我发现您不可能在10毫秒内完成那么多工作.我怀疑您将不得不延长该期限.

总结

以上是内存溢出为你收集整理的Android-安排每10毫秒发生一次事件?全部内容,希望文章能够帮你解决Android-安排每10毫秒发生一次事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1085326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存