Android记录11--异步更新之Handler,kotlin遍历数组

本文详细探讨了Android中Handler处理异步更新的机制,通过实例展示了如何使用Handler、HandlerThread和Runnable进行线程管理。文章解释了直接调用Runnable.run()与通过Handler.post()的区别,以及如何通过HandlerThread创建新线程并处理消息队列。最后,讨论了Handler作为多线程管理工具的角色,用于决定任务在线程中或新开线程执行。
摘要由CSDN通过智能技术生成

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

System.out.println("Activity —> " + Thread.currentThread().getId()); handler.post®;

}

private Handler handler = new Handler();

private Runnable r = new Runnable()

{

@Override public void run()

{

try { Thread.sleep(2000);

} catch (InterruptedException e)

{

// TODO Auto-generated catch block e.printStackTrace();

}

System.out.println("Runnalbe —> " + Thread.currentThread().getId());

}

};

}

通过这个例子的输出可以发现,Runnable对象和主用户界面线程的ID是相同。在这个例子中,我们直接利用handler对象post了一个runnable对象,相当于直接调用了Runnable对象的run函数,也就说没有经过start函数调用run(),那么就不会创建一个新线程,而是在原有线程内部直接调用 run()方法,因此输出的线程Id是相同的。

**b、如果new一个带参构造函数的Handler对象,那么这个Handler对象将与参数所表示的Looper相关联。**注意:此时线程类应该是一个特殊类HandlerThread类,一个Looper类的Thread类,它继承自Thread类。

HandlerThread handlerthread = new HandlerThread(“MyThread”);

handlerthread.start();

private MyHandler handler = new MyHandler(handlerthread.getLooper());

class MyHandler extends Handler

{

public MyHandler() { }

public MyHandler(Looper looper)

{

super(looper);

}

}

下面这个例子,将介绍如何开启一个新的线程,并通过Handler处理消息。

public class HandlerTe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值