全国- 「切换城市」 培训家旗下培训平台
手机版
网站导航

学习Android开发有哪些技巧呢

2020.03.20

发布者:网上发布

  在Android中,线程分为主线程和子线程。主界面用于与用户交互,进行UI的相关操作,而子线程则负责耗时操作。如果在主线程中进行耗时操作,就会使程序无法及时的响应。因此,耗时操作必须放在子线程中进行。为了方便你快速清晰地了解线程与安卓开发,本文将从以下几个方面为你阐述
  1 主线程和子线程
  主线程是指进程所有用的线程,在Android中即指进行UI与用户交互的线程就是主线程。因此在Android开发中,需要尽可能的把耗时操作,网络请求访问操作,数据库读取操作等放在子线程,以避免主线程长期处于占用状态以降低用户体验。系统要求网络访问必须在子线程中进行,否则会抛出NetworkOnMainThreadException异常。
  2 线程形态
  Android中的线程形态有传统的Thread,AsyncTask,HandlerThread和IntentService。
  AsyncTask封装了Thread和Handler,必须在主线程进行调用,它可以在子线程中执行任务,然后将执行的结果传递给主线程并更新UI。但AsyncTask并不适合执行特别耗时的任务。
  AsyncTask是一个泛型类,提供了三个泛型参数:Params,Progress和Result。
  Params表示参数的类型
  Progress表示后台任务的执行进度的类型
  Result表示后台任务返回结果的类型
  AsyncTask的声明:
  2.1.2 方法:
  AsyncTask提供了一些核心方法:
  onPreExecute在主线程中调用用来进行异步任务的准备操作。
  doInBackground(Params……params)在执行完onPreExecute后进行子线程任务时自动调用,Params表示异步任务的输入参数。在方法中可以通过publishProgress更新任务的完成进度,同时在结束调用后会返回结果给onPostExecute方法。
  onProgressUpdate(Params……params)在主线程中用于显示任务进行的进度,在publishProgress方法中被调用。
  onProgressExecute(Result result)在主线程中用户获取任务结束后回返的结果,即doInBackground的返回值。
  onCancelled在主线程中执行,当异步任务被取消后不会执行onProgressExecute方法而会执行onCancelled方法。

上一篇:幼儿时期学习英语的好处 下一篇:孩子在幼儿时期学习英语的优势有哪些

推荐机构

热门课程

本站展示的所有信息内容系由机构或个人用户发布,可能存在发布者所发布的信息,并未获得品牌所有人有效授权。本平台会加强审核,但无法完全排除差错或疏漏。郑重声明:本平台仅为免费注册用户提供免费的信息发布渠道,但不对其发布信息的真实性、准确性和合法性负责,对此也不承担任何法律责任。对于从本网站或本网站的任何有关服务所获得的资讯、内容或广告,您接受或信赖任何信息所产生之风险应自行承担,本网对任何使用或提供本网站信息的商业活动及其风险不承担任何责任。,如果侵犯,请及时通知我们,发送邮件至15610150293@126.com本网站将在第一时间及时删除。