0
這段代碼有什麼問題?當我像這樣實現它時,我的應用程序正常工作。Android thread.start()和runOnUiThread(thread);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textOut = (EditText) findViewById(R.id.textout);
IPAddress = (EditText) findViewById(R.id.editTextIPAddress);
Button buttonSend = (Button) findViewById(R.id.send);
Button buttonSet = (Button) findViewById(R.id.set);
textIn = (TextView) findViewById(R.id.textin);
buttonSend.setOnClickListener(buttonSendOnClickListener);
buttonSet.setOnClickListener(buttonSetOnClickListener);
Thread myThread = new Thread()
{
public void run()
{
runClient();
}// end method run
};// end myThread
}// end method onCreate
但是當我這樣實現它。它強制關閉:
3210我能夠嘗試這一點,但它改變了程序的邏輯:
Button.OnClickListener buttonSetOnClickListener = new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
runOnUiThread(myThread);
}// end method onClick
};
Thread myThread = new Thread()
{
public void run()
{
runClient();
}// end method run
};// end myThread
第一代碼運行MyThread的一次的onCreate()被調用。問題是我想在按下按鈕後運行myThread。但是這樣做會導致部隊關閉。什麼導致這個力量關閉,一旦按下按鈕,我該怎麼做才能運行線程?
第一個沒有Thread.start調用,這樣就無法運行你的線程。它只是創建線程的一個實例。從onClick開始線程即可。但是你應該發佈你的logcat消息,否則幾乎不可能找出錯誤原因。 – slkorolev
@slkorolev哦,是的,對不起,我忘了在這篇文章中添加myThread.start(),但是當我測試它時,我的程序中有這條線。我實際上不知道如何獲得我的logcat消息。它如何完成日食? –
您在Eclipse中有一個特殊的logcat視圖。通常它位於代碼窗口下。查找LogCat選項卡標題。如果你最大化它,你可以找到異常堆棧的錯誤消息。 – slkorolev