2017-07-13 20 views
0

我有一個關於在Android中啓動線程的簡短問題。 我有一個名爲ClientThread的類,如果我在創建時就可以啓動它,但是如果我嘗試使用按鈕單擊該應用程序就會獲得cloesed。我的目標是將點擊客戶端連接到服務器,並在套接字是Cloesen時重新啓動客戶端線程。我希望有一個人可以幫助我。無法啓動線程與Buttonclick,但與oncreate

這裏北京時間類客戶端的代碼:

class ClientThread implements Runnable { 

    @Override 
    public void run() { 

     TextView socket_stat = (TextView) findViewById(R.id.socket_status); 
     socket_stat.setBackgroundColor(Color.YELLOW); 

     try { 
      EditText ip = (EditText)findViewById(R.id.tcpip); 
      SERVER_IP = ip.getText().toString(); 
      InetAddress serverAddr = InetAddress.getByName(SERVER_IP); 
      socket = new Socket(serverAddr, SERVERPORT); 
      if(socket!= null) { 
       socket_stat.setBackgroundColor(Color.GREEN); 
      } 
     } catch (UnknownHostException e1) { 
      e1.printStackTrace(); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     } 
    } 
} 

我如何開始和結束線程/ Runnable的一個Click方法。

這是我已經測試了兩種方式:

public void connect(View view) { 
    1.Thread thread = new Thread(new ClientThread()); 
    thread .start(); 

    2.new Thread(new ClientThread()).start(); 
} 

我希望有人能幫助我。

+0

當你按鈕點擊開始你的線程時,有什麼錯誤 – sumit

+0

我怎麼能跟蹤這個?我必須在設備上運行應用程序,因爲我使用了NFC適配器.... –

+0

要查看錯誤,請在應用程序關閉並觀看日誌後將手機連接到PC上(可以使用從命令行使用logcat將日誌轉儲到文件中) – yakobom

回答

0

這是應用程序失敗後的日誌。

---------系統 07-13 13的開始:42:40.341 V/ActivityThread(29240):updateVisibility:ActivityRecord {2a21c429 [email protected] {COM .tortel.syslog/com.tortel.syslog.FragmentMainActivity}} show:true 07-13 13:42:58.179 V/ActivityThread(29240):updateVisibility:ActivityRecord {2a21c429 [email protected] {com。 tortel.syslog/com.tortel.syslog.FragmentMainActivity}}顯示:false 07-13 13:43:50.530 V/ActivityThread(29240):updateVisibility:ActivityRecord {2a21c429 [email protected] {com.tortel .syslog/com.tortel.syslog.FragmentMainActivity}} show:true 07-13 13:46:04.755 V/ActivityThread(29240):updateVisibility:ActivityRecord {2a21c429 [email protected] {com.tortel.syslog/com.tortel.syslog.FragmentMainActivity}}顯示:真 ---------主開始 07-13 13:47 :44.417 I/Timeline(29240):Timeline:Activity_idle id:[email protected] time:2869011 07-13 13:47:46.0​​88 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:47: 47.500 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:47:47.620 D/SysLog(29240):啓用日誌按鈕:true 07-13 13:47:49.512 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:47:49.632 D/SysLog(29240):啓用日誌按鈕:true 07-13 13:47:50.563 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:47:52.705 W/IInput ConnectionWrapper(29240):showStatusIcon on inactive InputConnection 07-13 13:47:53.025 V/ActivityThread(29240):updateVisibility:ActivityRecord {2a21c429 [email protected] {com.tortel.syslog/com.tortel。 syslog.FragmentMainActivity}} show:false 07-13 13:48:04.466 I/Timeline(29240):Timeline:Activity_idle id:[email protected] time:2889062 07-13 13:48:05.757 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:48:07.439 V/SysLog(29240):路徑:/ storage/emulated/0/SysLog/2017-07-13_13.48/ 07-13 13:48:07.629 V/SysLog(29240):完成抓取日誌