Android Toast消息不起作用

use*_*301 5 java android andengine android-toast

我正在通过Andengine为Android开发一款游戏.我有MainActivity类和GameScene类.我在GameActivity中使用Toast消息.它正在发挥作用.

Toast.makeText(this, " Hello World", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

所以我想在GameScene类中使用Toast消息.但它不起作用.这是代码:

Toast.makeText(activity, " Hello World", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

我必须使用"活动"而不是"这个".但它不起作用

为什么?

编辑:

当我使用第二个时,会发生错误.LogCat:http: //s29.postimg.org/k8faj9mdj/Capture.png

laa*_*lto 24

你试图Toast在后台线程中显示一个.您应该在主UI线程上执行所有UI操作.

这个例外RuntimeException: Can't create handler inside thread that has not called Looper.prepare()对于初学者来说可能有点神秘,但实质上它会告诉你,你处于一个错误的线程中.

要解决它,请将吐司包裹起来,例如runOnUiThread():

activity.runOnUiThread(new Runnable() {
  @Override
  public void run() {
    Toast.makeText(...).show();
  }
});
Run Code Online (Sandbox Code Playgroud)