2011-06-07 73 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()是靜態的。也許發佈一個更好的想法,你想要做什麼,以及你得到什麼錯誤?