首页 > 编程语言 > 详细

关于线程和更新UI线程的笔记

时间:2015-05-20 07:01:54      阅读:257      评论:0      收藏:0      [点我收藏+]

 

情景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();

 

关于线程和更新UI线程的笔记

原文:http://www.cnblogs.com/childhooding/p/4516062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!