Java 来自非活动类的处理程序
我们能执行吗Java 来自非活动类的处理程序,java,android,multithreading,android-handler,android-looper,Java,Android,Multithreading,Android Handler,Android Looper,我们能执行吗 handler.postDelayed(runnable,400) 从非活动类 我有一个控制器类,假设它是一个适配器。我们可以在那里使用处理程序吗 我尝试使用断点调试我的应用程序,但控件无法到达 handler.postDelayed(runnable,400) 有人能帮我吗 事实上我用的是OCR。如果进行了某些匹配,我希望自动返回到我的主要活动。我想这是一个活套。我还需要拍下它的照片。为此,我需要使用一个处理程序 我们能否从非活动类执行handler.postDelayed(
handler.postDelayed(runnable,400)
从非活动
类
我有一个控制器类,假设它是一个适配器。我们可以在那里使用处理程序吗
我尝试使用断点调试我的应用程序,但控件无法到达
handler.postDelayed(runnable,400)
有人能帮我吗
事实上我用的是OCR。如果进行了某些匹配,我希望自动返回到我的主要活动。我想这是一个活套。我还需要拍下它的照片。为此,我需要使用一个处理程序
我们能否从非活动
类执行handler.postDelayed(runnable,400)
是的,你可以
Any与一个(不是活动
或另一个对象)和线程
的消息队列相关联<代码>处理程序post/process和到/来自由处理的队列
在主线程中创建处理程序时(例如在活动
类中),可以将消息和可运行文件
(使用post()
,postDelayed()
,sendMessage()
等)发布/发送到正在运行的循环中。但是,默认情况下,线程不会运行循环,除非您创建了一个调用first和aftern的循环
如果在后台线程上创建的处理程序
将向main的线程队列发布消息和可运行文件
- 将主线程的
活套
传递给处理程序
- 或者使用
新处理程序(Looper.getMainLooper())
我尝试使用断点调试我的应用程序,但控件无法到达
我假设您的代码逻辑永远不会到达“控件”,或者在后台线程中创建处理程序
,而不准备并循环循环器
,因此可运行的
无法由我使用的处理程序处理。这对我有用。哈哈
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);
当然,您可以从非活动类使用处理程序。为什么你会认为不是这样?请提供更多的信息。您在哪里创建了处理程序
?控制不到哪里?另外,postDelayed()
返回布尔值。是true
还是false
?您应该使用@Onik建议的处理程序。它非常简单:(新的处理程序(Looper.getMainLooper()).postDelayed(新的MyRunnable(),delay);
使用一个TimerTask,它只是另一个线程,如果这成为一件事,你将无法更新UI。