- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个监听蓝牙串行数据的线程。
我有一个将数据传递到 ui 线程的方法,名为:sendData(byte[] buffer)
,它将数据完美地发送到 UI 线程,这可能会导致它在以下情况下变得非常慢:高频接收数据包。
但我想实现一个定期处理程序,每 x 毫秒调用此 sendData
方法,因为我以很高的频率接收数据包。
在我的线程中,我在 run()
中调用了以下内容 方法:
Looper.prepare;
mHandler = new Handler();
然后我将 sendData(buffer)
(它本身就完成了完美的工作)与:
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
sendData(tmp);
System.out.println("PostDelayed| "+ System.currentTimeMillis());
mHandler.postDelayed(this,INTERVAL);
}
},INTERVAL);
Interval 是预先声明的,其中将调用该方法的周期间隔。
但是 postDelayed 的运行没有被调用。我尝试调试,postdelayeds 行被调用,但它退出时显示 'No such instance field mHandler'
。
有什么想法要做什么吗?
最佳答案
我建议使用 ScheduledExecutorService。请参阅docs .
它具有scheduleAtFixedRate 方法,您可以使用该方法来安排定期操作。在传递给它的可运行文件中,使用 sendData(tmp) 命令调用 mHandler.post() 。
关于java - 在线程中定期调用 Handler.Postdelayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38346464/
我正在尝试为一个应用程序循环播放一个简短的动画,我在许多网站和论坛中找到了这个解决方案或其中的几个。然而,首席开发人员告诉我这段代码最终会使应用程序崩溃,我应该改用线程。谁能详细解释一下为什么这段代码
根据Handler.postDelayed(Runnable r, long delayMillis)的文档: Causes the Runnable r to be added to the mes
我试图实现一个循环Runnable。我发现的示例似乎使用以下想法来启动可运行的。 handler = new Handler(); final Runnable r =
对于这种使用“handler.posDelayed”的类型,我没有看到真正的答案。 因此,我使用 for 循环多次执行“handler.posDelayed”。问题是,当我离开 Activity 并重
我遇到错误:无法解析符号“postDelayed”。在: handler.postDelayed(updateCurrentTime, 500); 这是我的一些代码: package com.exam
我有一个情况,我创建了一个按钮和一个像这样的函数。 ... public void BtnOnClick(View view) { displayMsg(); } ... private vo
如何将用户字符串拉入处理程序timer.postDelayed? public class Quotes extends Activity implements OnClickListener {
我需要的是当 competition.isTimerStarted 变成 false 这个 runnable 应该启动 buttonsProcedure() 一次然后自己停止但这并没有发生 - but
谁能看出这不起作用的任何原因? override fun resetAnimations() { Log.d("MainActivity", "start") Handler().p
我正在查看 postDelayed 的 Android 文档 post delayed documentation 这类似于另一个问题 - https://stackoverflow.com/ques
我正在尝试在一段时间后自行重启服务。我的代码看起来像这样(在 onStartCommand(...) 内) Looper.prepare(); Handler handler = new Handle
我正在尝试为我的应用制作启动画面。我使用了 postDelayed 方法。这是我的代码: public class SplashScreenActivity extends Activity {
我正在使用 handler.postDelayed 方法为某些动画内容创建一些延迟。 我正在使用 Mediaplayer 播放一些歌曲。用户可以通过单击下一步退出此操作类。但是在下一个屏幕上,即使我在
我正在使用此代码播放声音 final MediaPlayer mp = MediaPlayer.create(this, R.raw.sound); mp.setOnComp
我正在尝试更改 handler.postDelay() 中处理程序的延迟,但在这里它只工作一次然后停止。关键的方法在最后。我在想如何使可运行程序在 postDelay() 循环中工作。 class M
我有一个简单的秒表代码 fragment 。线程在自定义类中运行,它通过接口(interface)连接到主 Activity public class MainActivity extends App
在我的应用程序中,我使用具有多个可运行对象的处理程序。为了调用这些可运行对象,我循环 postDelayed,以便它们充当计时器。我意识到随着时间的推移,这会生成一个巨大的堆(10mb,并且还在不断增
我有一个监听蓝牙串行数据的线程。 我有一个将数据传递到 ui 线程的方法,名为:sendData(byte[] buffer),它将数据完美地发送到 UI 线程,这可能会导致它在以下情况下变得非常慢:
这是我的代码,但理论上它应该每秒发布此日志消息直到永远,但事实并非如此。有任何想法吗?我的目标是让它永远运行,但 while 循环也不起作用。 import android.app.Activity;
我想为 WebView 动态设置自动滚动速度。在 onCreate 中调用 autoScroll(25) 并将其删除,接下来调用 autoScroll(300) 但是当 apk 运行时自动滚动速度为
我是一名优秀的程序员,十分优秀!