位置: 编程技术 - 正文
推荐整理分享Android基础之AsyncTask的doInBackground方法参数详解(android ashmem),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:async aop,async aop,android synchronized,android synchronized,android asynctask,android ashmem,android asan,android synchronized,内容如对您有帮助,希望把文章链接给更多的朋友!
1、对于耗时的操作,我们的一般方法是开启“子线程”。如果需要更新UI,则需要使用handler
2、如果耗时的操作太多,那么我们需要开启太多的子线程,这就会给系统带来巨大的负担,随之也会带来性能方面的问题。在这种情况下我们就可以考虑使用类AsyncTask来异步执行任务,不需要子线程和handler,就可以完成异步操作和刷新UI。
3、AsyncTask:对线程间的通讯做了包装,是后台线程和UI线程可以简易通讯:后台线程执行异步任务,将result告知UI线程。
4、使用方法:共分为两步,自定义AsyncTask,在耗时的地方调用自定义的AsyncTask。可以参照以下代码示例。
step1:继承AsyncTask<Params,Progress,Result>
Params:输入参数。对应的是调用自定义的AsyncTask的类中调用excute()方法中传递的参数。如果不需要传递参数,则直接设为Void即可。
Progress:子线程执行的百分比
Result:返回类型。和doInBackground()方法的返回类型保持一致。
step2:实现以下几个方法:执行时机和作用看示例代码,以下对返回类型和参数进行说明
onPreExecute():无返回类型。不传参数
doInBackground(Params... params):返回类型和Result保持一致。参数:若无就传递Void;若有,就可用Params
publishProgress(Params... params):在执行此方法的时候会直接调用onProgressUpdate(Params... values)
onProgressUpdate(Params... values):无返回类型。参数:若无就传递Void;若有,就可用Progress
onPostExecute(Result result) :无返回类型。参数:和Result保持一致。
step3:在调用自定义的AsyncTask类中生成对象;
执行 :对象.excute(Params... params);
小注:
1) Task的实例必须在UI thread中创建2) execute方法必须在UI thread中调用
3) 不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground='#'" onProgressUpdate(Progress...)这几个方法
4) 该task只能被执行一次,否则多次调用时将会出现异常
示例代码:
参照连接
android对handler及asynctask的一个例子 Android子线程更新UI主线程方法之HandlerAndroid之多线程工作-AsyncTask与handler详解Android中AsyncTask的使用Android线程和Handler基础入门Android中Handler的机制?xmlversion
Android ADB server didnt ACK * failed to start daemon * 简单有效的解决方案 转载请注明出处:
Android 仿百度手机助手首页滑动效果 今天看到百度手机助手首页上的滑动效果非常nice,主要功能归结为:1、当手指上划时,顶部搜索栏随手指移动距离而缩小到隐藏,隐藏后内容还是可以
标签: android ashmem
本文链接地址:https://www.jiuchutong.com/biancheng/379567.html 转载请保留说明!友情链接: 武汉网站建设