我有一个使用以下代码注册观察者的 Activity
Activity :
//Register for network status updates
NetworkStatus networkStatus = new NetworkStatus(this);
networkStatus.addObserver(new OfflineActivity());
Thread thread = new Thread(networkStatus);
thread.run();
主题:
@Override
public void run() {
for(;;) {
Log.d("NetworkStatus", "Checking Network Status");
if(isConnectedToInternet(context)){
notifyObservers();
Log.d("NetworkStatus", "Network Connection is established");
}
else {
Log.d("NetworkStatus", "Not connected to network");
}
}
}
当我点击 Activity 时,程序变得没有响应。有什么想法吗?
最佳答案
你应该使用 .start();
Thread thread = new Thread(networkStatus);
thread.start();
当您显式调用 run 方法时,它实际上并没有生成一个新线程,而是该方法调用仍在 UI 线程中运行。
关于android - 线程导致应用程序无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14634408/