线程同步问题 你这里 myThread.wait();了,是在主线程里wait了啊,在等着线程里的notifyAll呢,当然会黑掉你应该用handler来发消息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主,1楼的说法是正确的,这里我把你的代码整理了下 ,红色字体为关键处package app.example.testapp;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity { Thread myThread = new Thread(new Runnable() { @Override public void run() { try { Map<String, String> map1 = new HashMap<String, String>(); map1.put("", ""); String retStr = ""; retStr = NetTool.sendGetRequest(messageShowUrl, map1, "utf-8"); String[] str = retStr.split(","); list = Arrays.asList(str); listAll.clear(); for (int i = 0; i < str.length / 5; i++) { Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("user_name", list.get(i * 5)); map2.put("object_words", list.get(i * 5 + 1)); map2.put("my_words", list.get(i * 5 + 2)); map2.put("date", list.get(i * 5 + 4)); // 如果用户没有传照片,map2中传的imageUrl就为空 System.out.println("list3 = " + list.get(i * 5 + 3)); if (!list.get(i * 5 + 3).equals(" ")) { String imageUrl1 = "http://10.0.2.2:8080/BBStuServlet/" + list.get(i * 5 + 3); String imageUrl = imageUrl1.replace(" ", ""); map2.put("imageUrl", imageUrl); } else { map2.put("imageUrl", ""); } listAll.add(map2); } handler.sendEmptyMessage(0);//给Handler发送消息 } catch (Exception e) { e.printStackTrace(); } } }); Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==0) {//接收到对应的消息进行处理 MyAdapter adapter = new MyAdapter(this); messageList.setAdapter(adapter); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myThread.start();// 开启线程 }} en 谢谢 但是为什么会死锁呢?是我wait() notify()用的不对还是android的只能用handler在主副线程通信? 关于APK签名的问题,求救 ListView.setupChild报错的问题 android 横屏后如何确保数据不丢失。 android如何调用web服务 从网上加载图片,老是报OutOfMemoryError,如何解决? 如何在Android JNI编程中实现对信号量的操作? adb forward sdk manager 的问题。 像美团的首页,下拉动态加载怎么实现 AccessibilityNodeInfo怎么清空编辑框内容 开发一个android富文本编辑器 Android开发 BufferedWriter写入报错怎么办 啊
package app.example.testapp;import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;public class MainActivity extends Activity {
Thread myThread = new Thread(new Runnable() {
@Override
public void run() {
try {
Map<String, String> map1 = new HashMap<String, String>();
map1.put("", "");
String retStr = "";
retStr = NetTool.sendGetRequest(messageShowUrl, map1,
"utf-8");
String[] str = retStr.split(",");
list = Arrays.asList(str);
listAll.clear();
for (int i = 0; i < str.length / 5; i++) {
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("user_name", list.get(i * 5));
map2.put("object_words", list.get(i * 5 + 1));
map2.put("my_words", list.get(i * 5 + 2));
map2.put("date", list.get(i * 5 + 4)); // 如果用户没有传照片,map2中传的imageUrl就为空
System.out.println("list3 = " + list.get(i * 5 + 3));
if (!list.get(i * 5 + 3).equals(" ")) {
String imageUrl1 = "http://10.0.2.2:8080/BBStuServlet/"
+ list.get(i * 5 + 3);
String imageUrl = imageUrl1.replace(" ", "");
map2.put("imageUrl", imageUrl);
} else {
map2.put("imageUrl", "");
}
listAll.add(map2);
}
handler.sendEmptyMessage(0);//给Handler发送消息
} catch (Exception e) {
e.printStackTrace();
}
}
});
Handler handler = new Handler() { @Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==0) {//接收到对应的消息进行处理
MyAdapter adapter = new MyAdapter(this);
messageList.setAdapter(adapter);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myThread.start();// 开启线程
}}