2011-06-07 68 views
-2

我是新来的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(); 
    } 
+0

什么错误...? – ngesh 2011-06-07 12:24:22

+0

你已经声明了一个错误的方法 – 2011-06-07 12:24:56

+0

粘贴日志猫的结果 – Stuti 2011-06-07 12:26:18

回答

0

您不能操作除主线程以外的其他线程的UI,并且启动Toast将涉及用户界面。

改变你的测试功能

void test() 

{ 

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

} 

现在如果线程工作你会SE日志中logcat的。如果您想从另一个线索显示Toast,则必须使用HandlerrunOnUiThread

0

你不能把吐司线程内。从代码中删除Toast消息。它会正常工作。

0

这是你如何做到的。

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

其括号不匹配。

0

如果你绝对必须使用Toast,那么应该使用runOnUIThread()方法并在run()方法中传递一个新的Runnable()匿名类Toasts。

不相关的是,这似乎没有多大意义。也许你想让test()是静态的。也许发布一个更好的想法,你想要做什么,以及你得到什么错误?