![](/img/trans.png)
[英]Thread not interrupting even though I'm calling thread.interrupt()
[英]UI Thread gets stuck even though I'm working on another
我有这段代码,单击按钮后,将从新线程启动服务,该服务将启动我的TCP客户端。
一旦连接,TCP客户端将发送一个倒计时事件,以通知该片段继续工作。
代码看起来像这样
connectButton = (Button) view.findViewById(R.id.connectBT);
connectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// ***** IntentService Way ****** //
Intent intent = new Intent(getActivity(), NetworkService.class);
getActivity().startService(intent);
// Once client is connected, give the server some info about client
mCountDown.await(3000, TimeUnit.MILLISECONDS);
String json = jsonMaker.toJson(new DeviceInfo());
DispatchToServer(json);
} catch (Exception ie) {
ie.getMessage();
}
}
}).run();
但是当我单击connect时,即使我在等待与UI线程不同的线程,UI仍然由于某些原因冻结。 当我使用AsyncTask代替服务时,相同的代码工作正常。
你写
new Thread(new Runnable() {...}).run();
Thread#run
只是Runnable
接口的Thread
类的实现。 它所做的只是委托给您传递给构造函数的Runnable
的run
方法。
Java线程使用start
方法start
:
new Thread(new Runnable() {...}).start();
尝试调用thread.start()而不是thread.run()
使用Thread.start()而不是Thread.run()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.