android 线程更新view及数据传送
2012-08-05 16:57
218 查看
很多新手在启动新线程更新view时会出现
“Only the original thread that created a view hierarchy can touch its views”
既然如此,那就应该让创建view的线程自己更新view。基本思路:创建一个新线程,在该线程中发送一个更新消息给创建view的线程,创建view的线程会处理该消息,即:更新视图。
以下是正确做法
原文:http://androidyo.iteye.com/blog/633534
“Only the original thread that created a view hierarchy can touch its views”
既然如此,那就应该让创建view的线程自己更新view。基本思路:创建一个新线程,在该线程中发送一个更新消息给创建view的线程,创建view的线程会处理该消息,即:更新视图。
以下是正确做法
第一步: /* 启动Thread */ new Thread(mTasks).start(); 第二部: private Runnable mTasks = new Runnable() { public void run() { while (true) { try { Thread.sleep(1000); /* 传送Message给Handler */ mHandler.sendMessage(mHandler.obtainMessage()); //传送数据 /* Bundle data = new Bundle(); data.putString("aa","ttt"); Message msg = new Message(); msg.setData(data); mHandler.sendMessage(msg); */ } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; 第三步: Handler mHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); view.invalidate();//此处更新view内容 } };
原文:http://androidyo.iteye.com/blog/633534
相关文章推荐
- Android 中 ViewPager+Fragment关于fragment的数据更新
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法
- Mono for android 如何动态添加View,线程内部如何更新UI.
- Android开发RecycleView的适配器(adapter)无法更新集合中数据
- Android RecyclerView更新某条/一条数据
- android在子线程中更新数据
- ListView中开启线程查询更新数据导致的ViewHolder错乱问题解决
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法 .
- android 反纠结app开发: 在线程中更新view
- Android官方DataBinding(三):RecyclerView 使用ViewDataBinding更新数据
- Android零基础入门第67节:RecyclerView数据动态更新
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法 .
- Android新线程中更新主线程UI中的View方法汇总
- Android RecyclerView更新某条/一条数据
- Android ViewPager更新数据
- Android-ViewPager+Fragment数据更新问题
- 子线程更新UI会发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方法
- Android RecyclerView嵌套EditView实时更新Item数据
- Android官方DataBinding(三):RecyclerView 使用ViewDataBinding更新数据
- Android-ViewPager+Fragment数据更新问题