Android语言基础教程(216)Android实现多线程范例之通过实现Runnable接口来创建线程:别让APP卡成PPT!Android多线程修仙指南之‘Runnable’的逆袭

哎,各位Android开发道友,不知道你们有没有经历过这种大型社死现场:你精心打磨的APP,界面那叫一个炫酷,功能那叫一个齐全,结果用户一点某个按钮——咔!界面直接冻住,一秒、两秒……甚至弹出了那个万恶的“Application Not Responding”(ANR)弹窗。

那一刻,你是不是想顺着网线爬过去跟用户解释:“兄嘚,你听我说,是我的手机在思考人生!”

别傻了,这口大锅,妥妥得你来背。而罪魁祸首,十有八九就是——你把耗时的活儿,全都塞给了主线程(UI线程)去干!

你可以把主线程想象成一个脾气很好的餐厅服务员,它的主要工作是接待你(响应用户点击)、给你端菜(更新UI)、听你唠叨(处理UI事件)。结果你倒好,让它去后厨徒手劈榴莲(网络请求)、手磨豆浆(大量文件读写)、或者解一道微积分(复杂计算)。它这一去,前厅不就没人管了吗?用户点不了菜,也结不了账,可不就卡成PPT,甚至直接闪退咯。

所以,修仙之路的第一课就是:“好刀要用在刀刃上,重活要交给后台线程!”

今天,咱们就来深度修炼Android多线程世界里,最优雅、最受推崇的功法之一——通过实现 Runnable 接口来创建线程。

第一章:为啥是Runnable?直接继承Thread它不香吗?

香?乍一看是挺香,但那是“路边摊的香”,吃多了容易拉肚子(写出糟糕的代码)。且听我细细道来。

1.1 “继承Thread”派——直男癌式编程

传统做法是直接继承 Thread 类,重写 run() 方法。

public class MyThread extends Thread {
    @Override
    public void run() {
        // 在这里执行耗时操作,比如下载图片
        Log.d("MyThread", "我在后台默默下载图片呢!");
    }
}

// 使用的时候
MyThread thread = new MyThread();
thread.start(); // 启动新线程

简单粗暴,没毛病。但问题在于,Java是单继承的!你的类一旦继承了 Thread,就再也无法继承其他类了。这就好比你把“我会开车”这个技能,直接刻在了你的基因里(继承),导致你不能再继承“我会开飞机”的基因。灵活性大打折扣。

1.2 “实现Runnable”派——接口大师,灵活就业

而实现 Runnable 接口,则是一种更高级的玩法。

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 同样是在这里执行耗时操作
        Log.d("MyRunnable", "我也在下载图片,但我更优雅!");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值