来自非activity类的处理程序



我们可以执行

handler.postDelayed(runnable,400)

来自非Activity类?

我有一个控制器类,假设它是一个适配器。我们可以用Handler吗?

我试着用断点调试我的应用程序,但控制没有到达

handler.postDelayed(runnable,400)
关于这件事,有人能帮我吗?

实际上我用的是OCR。如果匹配成功,我想自动返回到我的主要活动。我想它是环形的。我还需要拍下它的照片。为此,我需要使用处理程序

我们可以在非Activity类中执行handler.postDelayed(runnable, 400)吗?

是的,你可以。

任何Handler都与Thread(不是Activity或其他对象)和Thread的消息队列相关联。Handlers post/process MessagesRunnables从到/Looper处理的队列

当你在主线程中创建Handler(例如在Activity类中)时,你发布/发送消息和Runnables(与post(), postDelayed(), sendMessage()等)到运行循环。但是,默认情况下,线程不运行循环,除非创建一个循环,先调用Looper.prepare(),然后调用Looper.loop()

如果在后台线程上创建Handler是为了发送消息,Runnables是为了向主线程队列发送消息

  • 将主线程的Looper传递给Handler的构造函数
  • 或使用new Handler(Looper.getMainLooper()) .

我试着用断点调试我的应用程序,但是控件没有到达。

我假设你的代码逻辑永远不会达到"控制"或handler是在后台线程中创建的,没有准备和循环Looper,因此runnable不能由handler处理。

我使用定时器。这对我很有效。LOL .

    new Timer().schedule(new TimerTask() {
        @Override
        public void run() {
            Intent data = new Intent();
            data.putExtra(OcrCaptureActivity.TextBlockObject, textBlock.getValue());
            Log.d("Read Text : ", textBlock.getValue());
            Base.base_activity.setResult(CommonStatusCodes.SUCCESS, data);
            Base.base_activity.finish();
        }
    }, POST_DELAYED_TIME);

相关内容

  • 没有找到相关文章

最新更新