AsyncTask中线程转换的实现

本文探讨了Android中AsyncTask如何实现线程转换,重点分析了InternalHandler在主线程中的作用,通过Handler和Looper的原理解释了AsyncTask如何在后台执行任务并在主线程更新UI。
摘要由CSDN通过智能技术生成

说明:最开始接触网络的时候,那时候尝试写了写回调,但自己写不出线程的转换来,就必须在回调方法中写上runOnUiThread方法来切换到主线程。最近研究了一下Android中的线程,一时冲动有了写博客的想法,来记录下自己的成长之路。

Android中一般采用Handler来实现主线程与子线程的切换,这是最常用的,就不再废话了,那么我们来看一下AsyncTask的实现。

AsyncTask的使用前提是,必须在主线程中创建AsyncTask的子类对象,那么这个前提正是可以获取主线程的基础。

private static InternalHandler sHandler;

这是AsyncTask里的一个静态成员变量,显然,它就是线程转换的关键类,下面是InternalHandler的源码

private static class InternalHandler extends Handler {
   
        public InternalHandler() {
            super(Looper.getMainLooper());
        }

        @SuppressWarnings({
  "unchecked", "RawUseOfParameterizedType"})
        @Override
        public void handleMessage(Message msg) {
            AsyncTaskResult<?> 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值