时间:2021-05-20
使用 view 对象,调用 post 方法即可在主线程中执行里边的代码,postDelayed 是延时执行,也可以达到相同的效果。例如:
textView.post(new Runnable() { @Override public void run() { textView.setText("更新textView"); }});在 Acitivity 中直接调用 runOnUiThread 或者将 Activity 的 context 对象传入子线程调用。例如:
runOnUiThread(new Runnable() { public void run() { textView.setText("更新textView"); }}如果是在主线程可以直接 new 一个 Handler 对象,如果是在子线程需要获取主线程的 Looper 和 Queue
// 主线程Handler handler = new Handler();// 子线程Handler handler = new Handler(Looper.getMainLooper());然后调用 post 方法,或者 postAtTime、postAtDelayed 即可。例如:
handler.post(new Runnable() { @Override public void run() { textView.setText("更新textView"); }});这个是比较常用的方法通过 sendMessage 发送消息,然后在 handleMessage 中进行处理。例如:
Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); // 处理消息 textView.setText("更新textView" + msg); switch(msg.what) { case 0: // 处理指定消息 break; } }};handler.sendEmptyMessage(0);doInBackground 方法执行是在子线程中,其返回结果会传递到 onPostExecute 方法中,onPostExecute 就是运行在主线程。
以上就是几种常用的切换到主线程执行的方法,更多相关Android切换到主线程执行内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java程序有的时候在主线程中会创建多个线程去执行任务,然后在主线程执行完毕之前,把所有线程的任务进行汇总,以前可以用线程的join方法,但是这个方法不够灵
Handler是用来干什么的?1)执行计划任务,可以在预定的时间执行某些任务,可以模拟定时器2)线程间通信。在Android的应用启动时,会创建一个主线程,主线
前言相信每位Android开发者们都知道更新UI只能在主线程中进行,若是在子线程执行任务后需要更新UI,则需要借助handler跳转到主线程中。以下介绍几种操作
subscribeOn和observeOn负责线程切换,同时某些操作符也默认指定了线程.我们这里不分析在线程中怎么执行的.只看如何切换到某个指定线程.subsc
头疼的IllegalArgumentException在Android开发的过程中,涉及到与UI相关的操作只能在主线程执行,否则就会抛出以下异常:android