创建新线程会给出错误

时间:2011-06-07 12:20:28

标签: android

我是android新手我正在尝试创建一个新线程来调用另一个方法。 但不要为什么会抛出错误。

这是我的存根

void test()

    {

        int i=0;
        Toast.makeText(getApplicationContext(), "Testing", Toast.LENGTH_SHORT).show();

    }
    public void Button2_Click(View v)
    {
        Thread thread = new Thread()
        {
              @Override
              public void run() {
                  test();
              }
          };

        thread.start();
    }

5 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你不能把Toast放在一个线程中。从代码中删除Toast消息。它会正常工作。

答案 2 :(得分:0)

这就是你可以做到的。

`new Thread(new Runnable() {
    public void run() {
      Bitmap b = loadImageFromNetwork();
      mImageView.setImageBitmap(b);
    }
  }).start();
'

支架不匹配。

答案 3 :(得分:0)

您无法从主线程以外的其他线程操作UI,并且启动Toast涉及用户界面。

更改您的测试功能

    void test()

{

    int i=0;
    Log.d("Test","Testing");

}

现在如果线程工作,你将在LogCat中登录一个日志。如果要从其他主题显示Toast,则必须使用HandlerrunOnUiThread

答案 4 :(得分:0)

如果绝对必须使用Toast,则应使用runOnUIThread()方法并在run()方法中向其传递一个新的Runnable()匿名类Toast。

不过,这似乎没有多大意义。也许你想让test()变得静态。也许可以更好地了解你想做什么以及你得到的确切错误?