0

実行中の Runnable 内からメソッドを呼び出そうとしています。文字列が入力されるのを待ち、文字列に依存するとき (文字列はコマンドとして機能します)、メソッドを呼び出し、その中の whats を実行することになっています。

public class App extends Activity implements Runnable {

    public void run() {

         try {
             ServerSocket serverSocket = new ServerSocket(portNum);
             while (true) {          
                 Socket client = serverSocket.accept();

                 try {

                      BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
                      String str = in.readLine();
                      if(str.equals("test")) {
                          //method call here
                      }

                 } catch(Exception e) {
                        Log.d("App", e.getMessage());

                 } finally {
                            client.close();
                        Log.d("App", "Done.");
                    }
             }       
         } catch (Exception e) {
             Log.d("App", e.getMessage());
         }
    }
4

1 に答える 1

1

オブジェクトを作成する必要がありHandlerます。各Handlerインスタンスはスレッドに関連付けられており、メッセージを関連付ける/処理するスレッドに応じて、Handlerそのコンテキスト内に を作成する必要があります。Message次に、メッセージを作成するスレッドのキューにメッセージをプッシュできますHandler。文字列が入ってくると、次のようなものを使用できます。

public Handler handler_use = new Handler(){

    // @Override
    public void handleMessage(Message msg) {
       //Do something with the message
    }
}

そしてtryブロック内:

try {
    BufferedReader in = new BufferedReader(new  InputStreamReader(client.getInputStream()));
    String str = in.readLine();
    if(str.equals("test")) {
        //Construct the message Msg - based on the string
        handler_use.sendMessage(Msg);
    }
}
于 2010-10-20T16:38:19.800 に答える