我调用Progressdialog.set消息(字符串)
方法从一个工人线程在下面的代码,但Android不抛出IllegalStateExc0019
这应该说java.lang.IllegalStateExc0019:调用视图方法在另一个线程比UI线程”,因为我正在修改UI从外部的UI线程,这在Android中是禁止的。
以下是我的工作线程作为内部类的可运行状态:
public class HostOnHoldRunnable implements Runnable {
@Override
public void run() {
hostOnHoldDialog.setMessage("Game is on hold because the host paused the app (" + currentTimeLeftForHostOnHoldTimeOut / 1000 + ")");
}
}
}
注意:host OnHoldDialog是我活动的ProgressDialog
成员。
而不是抛出IllegalStateExc0019
,android只是不根据消息更新UI。
这是虫子吗?
如果我在Runnable
中使用rununuithread,一切正常,例如。
public class HostOnHoldRunnable implements Runnable {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
hostOnHoldDialog.setMessage("Game is on hold because the" +
" host paused the app (" +
currentTimeLeftForHostOnHoldTimeOut / 1000 + ")");
}
});
}
}
尝试使用
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
hostOnHoldDialog.setMessage("Game is on hold because the host paused the app (" + currentTimeLeftForHostOnHoldTimeOut / 1000 + ")");
}
});
嗯,您可以看到Handler
与Looper
一起运行消息,Handler在UI线程上运行,每个视图都有一个附加的处理程序,使其能够在UI线程上发布方法/函数,任何新创建的线程想要运行消息或在UI线程上运行都必须调用处理程序或Looper。prepare()将实现哪个后续处理程序。在多线程应用程序上,使用Handler()。post()或Handler()。postDelayed()或视图。post()或视图。postDelayed()或上下文。getMainLooper()都是帮助您在UI线程上发布的函数,所以如果您使用这种方法调用方法,您将不会得到异常。所以这里并没有问题或bug,只需阅读Looper、Hanlder和View上的几行文档即可
既然我们可以在Javascript中使用关键字抛出任何东西,那么我们就不能直接抛出一个错误消息字符串吗? 有人知道这里面有什么陷阱吗? 让我对此添加一些背景:在JavaScript世界中,人们通常依赖参数检查而不是使用try-catch机制,因此只使用抛出致命错误是有意义的。不过,为了能够捕捉一些系统错误,我必须为我自己的错误使用一个不同的类,而不是创建错误的子类,我认为我应该只使用String。
我在服务层的spring-boot应用程序中使用了Hystrix(Camden.sr7版本),而没有回退方法。Service的方法之一如下所示: 对于这样的响应,不清楚实际上是从哪个方法抛出异常的。如果我将版本更改为brixton.sr5(以前的版本),它将返回清晰的响应: 因此Hystrix的新版本(实际上是spring-cloud-dependencies的新版本)不会抛出HystrixRun
我只想得到所有的消息数据。这样它就应该在父消息的花括号之间查找消息和所有数据。有了下面的代码,我也得到了服务细节以及我不想要的消息。对此专家的任何建议都要提前感谢。 我期待响应如下在我的字符串大小为2的数组列表。 好的。get(0)应该是 好的。get(1)应该是
我知道您可以使用try-catch块对自定义消息抛出异常,例如: 但是如果我们在实用程序类中有一个方法,例如: 然后我们进入服务类,如下所示: 有没有一种方法可以自定义设置来自实用程序类方法<code>processFiles()</code>的消息及其<code>抛出的IOException</code>,而不是在该方法内部使用try-catch块?
问题内容: SonarQube抱怨“ 字符串不包含格式说明符” 。使用时,尤其是方法“ ”。例如 它指的是这个规则:https : //wiki.sei.cmu.edu/confluence/display/c/FIO47-C.+Use+valid+format+strings 但是,在此规则中,我们可以找到以下引号: 每个转换规范都以%字符开头,后跟(按顺序) 零个或多个标志(以任何顺序),这些
我想得到所有的消息数据。这样它就应该在父消息的花括号之间查找消息和所有数据。有了下面的模式,我没有得到所有的父体。 在我的字符串数组列表中,我希望得到如下大小为2的响应。 应该是: 和应该是: