情景1:
向数据库中插入10000条数据的结果:
testData();//插入10000条数据 list = blackdao.findAll(); blackAdapter = new BlackAdapter(); lv_black.setAdapter(blackAdapter);
情景2:
//使用线程插入数据,
new Thread() { public void run() { testData();// 插入10000条数据 }; }.start(); list = blackdao.findAll(); blackAdapter = new BlackAdapter(); lv_black.setAdapter(blackAdapter);
注意:但是结果要重新退出,然后加载才会有数据,也就是说list中的数据没有更新
情景3:使用线程,用其他线程中的方法更新UI主线程
new Thread() { public void run() { list = blackdao.findAll(); runOnUiThread(new Runnable() { public void run() { blackAdapter = new BlackAdapter(); lv_black.setAdapter(blackAdapter); } }); }; }.start();
情景4:使用线程,用hanlder更新UI主线程
final Handler handler = new Handler() { public void handleMessage(Message msg) { // TODO String s = (String) msg.obj; if ("ok".equals(s)) { Toast.makeText(CallSmsSafeActiviy.this, "ok", 0).show(); blackAdapter = new BlackAdapter(); lv_black.setAdapter(blackAdapter); } } }; new Thread() { public void run() { list = blackdao.findAll(); Message msg = new Message(); msg.obj = "ok"; handler.sendMessage(msg); }; }.start();
原文:http://www.cnblogs.com/childhooding/p/4516062.html