After this thread run dozens of loops. The Binder Threads are created, and can be seen in the eclipse debug window. And these Binder Threads will never get terminated / released. Where does theme come from? How to prevent this from happening? Or how to get it teminated / released?
public class TServer {
static final int HTTP_PORT = 7788;
private static Context FContext = null;
static class RequestListenerThread extends Thread {
private final ServerSocket serversocket;
private final HttpParams params;
public RequestListenerThread(Context AContext) throws
IOException {
FContext = AContext;
this.serversocket = new ServerSocket(HTTP_PORT);
this.params = new BasicHttpParams();
this.params
.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 5000)
.setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE,
8 * 1024)
.setBooleanParameter(
CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true);
// .setParameter(CoreProtocolPNames.ORIGIN_SERVER,
// "HttpComponents/1.1");
}
public void terminate() {
try {
serversocket.close();
this.interrupt();
} catch (Throwable e) {
e.printStackTrace();
}
}
public void run() {
while (!Thread.interrupted()) {
try {
// Set up HTTP connection
Socket socket =
this.serversocket.accept();
DefaultHttpServerConnection conn = new
DefaultHttpServerConnection
();
conn.bind(socket, this.params);
try {
String aUrl = "";
String aRequest = "";
HttpRequest request =
conn.receiveRequestHeader();
if (request instanceof
HttpEntityEnclosingRequest) {
conn
.receiveRequestEntity((HttpEntityEnclosingRequest) request);
HttpEntity entity =
((HttpEntityEnclosingRequest) request)
.getEntity();
if (entity != null) {
aRequest =
EntityUtils
.toString(entity, "UTF-8");
entity.consumeContent();
}
}
aUrl =
request.getRequestLine().getUri();
String aResponse =
"中文中文中文中文中文中文中文中文中文";
ContentResolver r =
FContext.getContentResolver();
Cursor c =
r.query(Contacts.People.CONTENT_URI, null,
null, null,
null);
try {
while (c.moveToNext()) {
aResponse =
aResponse.concat(c.getString(c
.getColumnIndex(Contacts.People.NAME)));
if
(c.getPosition() > 30) {
break;
}
}
} finally {
c.close();
}
HttpResponse response = new
BasicHttpResponse(
HttpVersion.HTTP_1_0, 200, "OK");
response
.setEntity(new
StringEntity(aResponse, "UTF-8"));
conn.sendResponseHeader(response);
conn.sendResponseEntity(response);
} catch (Throwable e) {
e.printStackTrace();
} finally {
try {
conn.shutdown();
} catch (Throwable ignore) {
}
}
} catch (InterruptedIOException ex) {
ex.printStackTrace();
// break;
} catch (IOException e) {
e.printStackTrace();
// break;
} catch (Throwable e) {
e.printStackTrace();
// break;
}
}
}
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

