2017-07-13 14 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(); 
     } 
    } 
} 

がどのように開始し、Clickメソッドで実行可能スレッドを/終了することができます。

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

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

私が誰かが私を助けることを願って:

これは私がテストした2つの方法があります。

+0

ボタンをクリックしてスレッドを開始するとエラーが発生します – sumit

+0

これをどのように追跡できますか?私はデバイス上でアプリケーションを実行する必要があるので、私はNFC-Adapterを使用します。 –

+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。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}}表示:true ---------メインの先頭 07-13 13:47 :44.417 I/Timeline(29240):タイムライン:Activity_idle ID:[email protected]時間:2869011 07-13 13:47:46.088 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:47: 47500 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:47:47.620 D/SysLog(29240):ログボタンを有効にする 07-13 13:47:49.512 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 0713 13:47:49.632 D/SysLog(29240):ログボタンを有効にする 07-13 13:47:50.563 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:47:52.705 W/IInput ConnectionWrapper(29240):非アクティブInputConnectionのshowStatusIcon 07-13 13:47:53.025 V/ActivityThread(29240):updateVisibility:ActivityRecord {2a21c429 [email protected] {com.tortel.syslog/com.tortel。07-13 13:48:04.466 I/Timeline(29240):タイムライン:Activity_idle ID:[email protected]時間:2889062 07-13 13:48:05.757 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:48:07.439 D/ViewRootImpl(29240):ViewPostImeInputStage ACTION_DOWN 07-13 13:48:07.589 V/SysLog(29240):パス:/ storage/emulated/0/SysLog/2017-07-13_13.48/ 07-13 13:48:07.629V/SysLog(29240):グラバーログを終了

関連する問題