Toast正在崩溃应用程序,甚至在线程内部

Hyr*_*mon 3 android toast

我在我的Android应用程序中有一个onClick事件触发以下代码,但它不断崩溃我的应用程序.我把它放在一个线程只是因为我读到那应该防止崩溃.此外,ctx指的是Activity的上下文(它是我在活动集中创建的变量等于此.我已阅读并尝试了几件事.任何帮助都会很棒.谢谢!

Thread toastThread = new Thread() {
  public void run() {
    Toast alertFailure = Toast.makeText(ctx, "Login Failed", Toast.LENGTH_LONG);
    alertFailure.show();
  }
};
toastThread.start();
Run Code Online (Sandbox Code Playgroud)

cod*_*gic 10

您需要使用runOnUiThread

就像是

 runOnUiThread(new Runnable() {
            public void run()
            {
                Toast.makeText(ctx, toast, Toast.LENGTH_SHORT).show();
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

Toast是一个UI元素,所以它需要在UI Thread背景上运行,而不是背景Thread.

但是,如果您正在使用它,那么您不需要单独Thread显示一个Toast.如果你能解释一下你如何使用它的背景,那么我们可以帮助你找到更好的方法.此外,如果你在你的内部,你Activity不需要变量Context.您可以ActivityName.this改用来访问Activity Context