2013-05-04 41 views
0

這是服務器代碼的一部分。我有問題,我無法打破這個無盡的循環。它是獨立的類,它處理客戶端連接。如何可以使無限量的客戶端連接,但如果可能的話,按鈕點擊完成連接?如何破解while循環android服務器?

public class Handler implements Runnable { 

public void run(){ 
.... 
//sockets 
try{ 
.... 
//socket 

while (true) { 

    client = server.accept(); 
    count++; 
    Log.d("My Log", "Connected"); 
    Log.d("My Log", "log" + count); 
    executor.execute(new Handler(client)); 
     } 
    } 
} 

回答

1

而不是使用

while(true) 

使用類似

while(myConditional) 
{ 
    client = server.accept(); 
    count++; 
    Log.d("My Log", "Connected"); 
    Log.d("My Log", "log" + count); 
    executor.execute(new Handler(client)); 
} 

其中myConditional是一個布爾值,你可以在UI線程設置,像

button.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     myConditional = false; 
    } 
});