我有这个问题。我试图从另一个线程更新我的< code>TextView,但它不允许。
我尝试了一堆不同的解决方案,但没有一个似乎没有帮助。在我的同时循环代码中,一直在打印“开始新循环”,但它没有从该运行OnUiThread
继续。
有人能帮我找出如何从另一个线程更新TextView
吗?
//second thread
protected void startKakkosThread() {
Thread t2 = new Thread() {
public void run() {
while (true) {
System.out.println("Started new loop");
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
if(rullaavaNumero >= 0) {
rullaavaNumero--;
System.out.println(rullaavaNumero);
pelaajanPisteetTeksi.setText("" + rullaavaNumero);
sleep(1000);
}else{
rullaavaNumero = 9;
System.out.println(rullaavaNumero);
pelaajanPisteetTeksi.setText("" + rullaavaNumero);
sleep(1000);
}
}catch (InterruptedException e){
e.printStackTrace();
}
}
});
}
}
};
t2.start();
}
这里有一个快速修复方法,你有一个无限循环,运行速度比线程有机会(时间)启动的速度快。因此,即使这样,您的线程中有一个带有if语句的sleep,如果线程从未启动,那么sleep就没有任何效果。
你在线程中的睡眠不会像这样工作。您希望延迟无限while循环,因此需要将睡眠移出while环中的线程。
仍然可以通过在线程中添加额外的睡眠来延迟线程,但这取决于您想要实现什么。
您的最终代码将如下所示:
protected void startKakkosThread() {
Thread t2 = new Thread() {
public void run() {
while (true) {
System.out.println("Started new loop");
runOnUiThread(new Runnable() {
@Override
public void run() {
if (rullaavaNumero >= 0) {
rullaavaNumero--;
System.out.println(rullaavaNumero);
pelaajanPisteetTeksi.setText("" + rullaavaNumero);
// no need for sleep here
// sleep(1000);
} else {
rullaavaNumero = 9;
System.out.println(rullaavaNumero);
pelaajanPisteetTeksi.setText("" + rullaavaNumero);
// no need for sleep here
// sleep(1000);
}
}
});
// add this part
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t2.start();
}
我已经测试过了,它是有效的,你也可以按照板球的建议去做。
我的眼睛看到了另一个问题,这不是你问题的一部分,但值得一提。我假设您想从< code>9计数到< code>0,如果是这种情况,您需要通过删除< code>=来更正下面的代码行,否则您将一直计数到< code>-1,因此您的代码行将如下所示:
if(rullaavaNumero > 0) {...
我有@test Annotaion的测试市场。但是当我运行测试用例时,它显示测试运行:0,失败:0,跳过:0我正在从Eclipse中运行测试用例。我已经在Eclipse中安装了testng插件。 @test中的属性是自定义的。 TestNG版本:6.8.0
问题内容: 我已经尝试了这两个代码,但是却没有执行,有人可以告诉我为什么吗? 提前致谢 问题答案: 试试这个代码: 它会在源元素的位置单击并按住,移至目标元素的位置,然后释放鼠标。 要么 它将单击并按住源元素的位置,移动给定的偏移量,然后释放鼠标。 要么 它将执行以上两个代码的操作。 我在Java上编写此代码。您可以转换为指定的语言。 从动作引用。
我想对我的实体更新进行审核。所以我实现了EmptyInterceptor My方法未执行,但执行了
我试图实现一个简单的Spring AOP(v4)示例,使用建议和一个原位切入点表达式,但是没有调用方面方法。我有所有必需的依赖关系(spring-aop、aopalliance和aspectweaver)。我做错了什么? 方面:
我正试图把普罗米修斯加入我的Spring靴项目。我正在使用Spring Boot执行器来公开度量endpoint。我按照教程做了所有的事情,但我总是得到一个404错误。我还尝试了中给出的每一个解决方案: context.xml(外部属性):
Maven项目标志错误:未能执行goal org.springframework.boot:spring-boot-maven-plugin:2.1.3。release:repackage(repackage)on project pet-clinic-data:repackage of goal org.springframework.boot:spring-boot-maven-plugin: