当前位置: 首页 > 知识库问答 >
问题:

Androidjava崩溃后thread.start

桑鸿志
2023-03-14

由于某种原因,我的程序在完成线程后崩溃。启动方法。由于这是我第一次使用线程,我完全迷路了,不知道发生了什么。

    public void countingDown() {

waitingTime = (long) (Math.random() * 1000 + 3000);
button.setText("Wait");
try {
    Thread.sleep(waitingTime);
} catch (Exception e) {
}
time1 = System.currentTimeMillis();
button.setText("Press");}

并称之为踏面:

new Thread(new Runnable() {

                    @Override
                    public void run() {
                        countingDown();
                    }
                }).start();

我会非常感激的!

我的日志显示如下(抱歉弄乱了):

10-22 14:59:43.319:E/AndroidRuntime(961):致命异常:Thread-81 10-22 14:59:43.319:E/AndroidRuntime(961):android。看法ViewRootImpl$CalledFromErrorThreadException:只有创建视图层次结构的原始线程才能接触其视图。10-22 14:59:43.319:E/AndroidRuntime(961):在android上。看法ViewRootImpl。checkThread(ViewRootImpl.java:5908)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。看法ViewRootImpl。invalidateChildInParent(ViewRootImpl.java:869)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。看法查看组。invalidateChild(ViewGroup.java:4253)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。看法看法invalidate(View.java:10539)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。看法看法invalidate(View.java:10494)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。小装置。文本视图。CheckForRelayat(TextView.java:6511)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。小装置。文本视图。setText(TextView.java:3771)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。小装置。文本视图。setText(TextView.java:3629)10-22 14:59:43.319:E/AndroidRuntime(961):在android上。小装置。文本视图。setText(TextView.java:3604)10-22 14:59:43.319:E/AndroidRuntime(961):在第8周。汉丁。Week8Handin。倒计时(Week8Handin.java:59)10-22 14:59:43.319:E/AndroidRuntime(961):在第8周。汉丁。8周和1美元。运行(Week8Handin.java:82)10-22 14:59:43.319:E/AndroidRuntime(961):在java上运行。朗。丝线。运行(Thread.java:841)

共有1个答案

施敏达
2023-03-14

您正在不是主(UI)线程的线程中执行UI操作(button.setText())。您需要一个HandlerAsync任务来完成这个任务-请阅读以下内容,了解有关它们以及整个'不在主线程'内容的更多信息-或者至少runOnUiThread(),如示例所示下面(您需要声明您的按钮变量最终才能工作):

public void countingDown() {

    waitingTime = (long) (Math.random() * 1000 + 3000);
    button.setText("Wait");
    try {
        Thread.sleep(waitingTime);
    } catch (Exception e) {
    }

    time1 = System.currentTimeMillis();

    runOnUiThread(new Runnable() {
        public void run() {
            button.setText("Press");
        }
    });
}

如果您有其他问题,请告诉我们。

 类似资料:
  • 我已经在我自己的服务器上做了一个原型应用程序,一个伟大的工作。但是在将它部署到Meteor.com时,我无法让它工作。昨天还好好的,但突然停了。有停电吗? 围绕pedacity.js:4 关于pedacity.js:100,这一行在我的文件中不存在...那应该是Meteor自动添加的clousure。

  • 我正在尝试更新到最新的LibGDX版本1.9.2(我已经使用了一段时间的旧版本),但是在创建了一个新的LibGDX项目并运行了默认的badlogic徽标应用程序之后,它在Android上崩溃了。我已经多次创建了新的LibGDX项目,没有出现任何问题,所以现在肯定有些不同了,因为这次它不起作用了。我的项目中没有错误,桌面项目工作正常,只是在我尝试运行Android项目时崩溃了。 我使用安装应用程序创

  • 问题内容: 我的依赖: 但仍然:Google Play服务已过时。需要5208000但找到了5089036 这怎么可能? 更新这项工作: 要么 要么 问题答案: 如果您看不到任何更新,请等到设备上的Play商店更新Google Play服务。 Play商店-Google Play服务 或者,在Google上搜索并安装新的APK,或使用旧版本(如5.0.77或5.0.89)

  • 我试图在solaris机箱中使用远程Weblogic服务器配置jProfiler。服务器正常启动,但是当我将jProfiler GUI连接到服务器时,出现以下错误,服务器崩溃。tmp目录具有足够的访问权限和空间。我可以看到一些文件,比如jpcOYaysx,是在tmp目录中创建的。有人能帮我解决这个问题吗?我们是否有特定于jProfiler的日志,如何配置它? 我找不到任何帮助页面/文档编辑jPro

  • 我最近把我的OSX更新到了最新的Yosemite版本,现在IntelliJ IDEA 13.1.4还没有开始。 我当前的Java版本: 看起来也没问题。

  • 我有一个关于更新GitHub插件的问题。 每次我更新GitHub之类的插件并重启jenkins,jenkins就会崩溃。当我试图通过浏览器中的URL访问jenkins时,错误页面会显示一些异常“未找到类jenkins/model jenkins”。然后为了让jenkins再次工作,我必须完全从plugins目录中删除这个插件。我希望有人能回答这个问题,因为我真的需要将我的github项目提供给je