Android线程的创建与销毁

本文介绍了如何在Android中使用HandlerThread来创建后台线程,以避免阻塞UI。通过创建HandlerThread并启动,然后利用其Looper创建Handler,将耗时任务post到消息队列,实现异步处理。在onResume()和onStop()中控制线程运行状态,并在onDestroy()中移除回调以销毁线程。
摘要由CSDN通过智能技术生成

1、使用HandlerThread 

HandlerThread实际上就一个Thread,只不过它比普通的Thread多了一个Looper。
我们可以使用下面的例子创建Handler :

HandlerThread thread = new HandlerThread("MyHandlerThread"); 
thread.start(); 
mHandler = new Handler(thread.getLooper()); 
mHandler.post(mBackgroundRunnable); 

创建HandlerThread时要把它启动了,即调用start()方法。
然后创建Handler时将HandlerThread中的looper对象传入。
那么这个mHandler对象就是与HandlerThread这个线程绑定了(这时就不再是与UI线程绑定了,这样它处理耗时操作将不会阻塞UI)。
最后把实现耗时操作的线程post到mHandler的消息队列里面。
注意的是,mBackgroundRunnable这个线程并没有启动,因为没有调用start()方法。

完整demo:

 

 

public class MainActivity extends Activity implements OnClickListener{
    public static final String TAG = "MainActivity";
    private Handler mHandler;
    private boolean mRunning = false;
    private Button mBtn;
    
    @Override
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值