您的位置:首页 > 移动开发 > Android开发

聊聊Android里的多线程

2016-07-11 22:18 260 查看

聊聊Android里的多线程

  今天讲讲Android里的多线程,在java中多线程有两种实现方法,继承Thread类和实现Runnable接口(继承Thread本质上也是实现Runnable接口),线程里重写Run方法,通过start方法启动线程,两者的区别是实现了Runnable接口后需要将自己的Thread作为参数传入到实例化的Thread中。

  在Android中除了可以使用java提供的Thread,还可以使用Android封装好的工具类,比如AsyncTask,IntentService,HandlerThread。AsyncTask底层实现是线程池,其他类底层使用了线程实现。

  AsyncTask是一种轻量级的异步任务类,不适合执行特别耗时的操作。它是一个抽象的泛型类,提供了3个泛型参数,内有4个核心方法,onPreExecute,doInBackground,onProgressUpdate,onPostExecute,当任务取消时,调用onCancelled()。另需注意:AsyncTask必须在主线程中使用,execute不要重复调用,执行一次就好了,1.6之前AsyncTask是串行的,1.6-3.0是并行的,3.0之后又变成串行,如果又并行的需要呢,使用executeOnExecutor即可。

  HandlerThread继承了Thread,顾名思义,Handler+Thread。在Thread的run方法中加入了Lopper.prepare()来创建消息队列,具体的使用通常配合IntentService来使用。

  IntentServer继承自Server的抽象类,可用于执行后台耗时操作,优先级高于一般Thread(毕竟是四大组件)。

  先写到这里,要去刷碗了,最近搬家了,开始自己做饭了,感觉还行,除了费时间要准备之外,菜饭的味道都能自己掌握,想多放肉就多方肉,咸淡也能自己掌握,感觉还不错。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android