my git : https://github.com/hejiawang
Android的AsyncTask类是处理异步任务的工具类,使程序员不用new Thread,不用写handler,只要使用AsyncTask类就能实现异步任务的处理了,但是不能说只用AsyncTask类而不要handler了,因为AsyncTask类在源码实现时,起的是一个线程池,在这个线程池中会有一定数量的线程。
AsyncTask类部分源码:
/** * An {@link Executor} that can be used to execute tasks in parallel. */ public static final Executor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE, TimeUnit.SECONDS, sPoolWorkQueue, sThreadFactory);
所以,在使用AsyncTask类时,不能盲目。。
参看AsyncTask类的源码,下面是模拟AsyncTask类功能的代码,就是把new Thread() 和 handler封装在一起。。。
package com.wang.mobilesafe.utils; import android.os.Handler; /** * 模拟android的AsyncTask类 * </br> * 一个异步任务的工具类 * </br> * 模板设计模式 * @author HeJW * */ public abstract class MyAsyncTask { private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { onPostExecute(); }; }; /** * 耗时任务开始之前执行的方法 */ public abstract void onPreExecute(); /** * 耗时任务执行之后调用的方法 */ public abstract void onPostExecute(); /** * 执行的耗时任务,运行在子线程中 */ public abstract void doInBackground(); /** * 执行任务 */ public void execute(){ onPreExecute(); new Thread(){ public void run() { doInBackground(); handler.sendEmptyMessage(0); }; }.start(); } }
相关推荐
"Android游戏源码——忍者快跑.zip" 提供的是一份Android游戏的源代码,这为我们提供了深入理解Android游戏开发的实践案例。 1. **游戏引擎**:Android游戏通常基于游戏引擎进行开发,例如Unity、Unreal Engine或...
这份"安卓Android源码——斗地主源码实现.zip"提供的压缩包包含了一个完整的斗地主游戏的源代码实现,其中主要的文件是"Android斗地主[牌桌实现源码].pdf"。这里我们将详细探讨这个项目中的核心知识点。 1. **...
本压缩包"Android源码——图像冰冻特效源码_new_36.zip"提供的正是Android平台上的图像冰冻特效源代码,对于学习和开发Android图像处理应用的开发者来说,这是一个非常有价值的资源。 首先,我们要理解什么是“图像...
本资源“安卓Android源码——hotel宾馆系统.zip”提供了一个模拟宾馆管理系统(hotel)的完整源代码,这对于学习Android应用开发,尤其是涉及用户交互、数据库操作和后台服务的开发者来说,是一份宝贵的资料。...
本项目“安卓Android源码——高仿网易客户端UI(tabhost)”提供了一个很好的示例,展示了如何利用TabHost来构建类似网易新闻客户端的交互式界面。以下是对该项目中涉及的技术点的详细解释: 1. **TabHost**:...
3. **异步处理**:由于网络操作应在后台线程执行,以避免阻塞用户界面,开发者需要掌握AsyncTask或Retrofit等工具来实现异步数据获取。 4. **权限管理**:Android系统有严格的权限控制,获取网络数据需要声明相应的...
《Android游戏开发详解——以FishJoyfinal项目为例》 在Android平台上,游戏开发是一个充满挑战与机遇的领域,其中FishJoyfinal项目是一个典型的案例,它为我们揭示了Android游戏开发的基本流程和技术要点。本文将...
9. **异步处理**:Android中的AsyncTask、Handler、Looper和线程池是实现非阻塞UI的关键,同时还要了解现代的Coroutines和LiveData库。 10. **Android SDK和版本适配**:Android系统有多个版本,开发者需要了解API...
接着,我们将深入到源码中的关键类——可能是名为Firework或类似名称的类。这个类通常会封装烟花的属性,如位置、颜色、速度和方向。每个烟花对象都会有自己的生命周期,从发射到爆炸,再到飘散,这一过程可以通过...
|--延时任务的工具类 |--异常之UncaughtExceptionHandler全局捕获处理 |--异步任务AsyncTask的用法 |--异步任务的自定义 |--快捷方式增删查 |--手势识别器GestureDetector的用法 |--拍照之调用系统相机并显示及保存 ...
**Android应用源码分析——jamendo** Android应用开发是一个复杂且多层面的工程,涉及到许多技术栈和组件的集成。本篇文章将深入探讨名为"jamendo"的Android应用源码,帮助开发者理解其背后的实现机制,提升自己的...
9. **异步处理**:考虑到播放音乐可能涉及的IO操作,项目可能会采用AsyncTask或者Handler/Looper机制来处理耗时任务,避免阻塞主线程。 10. **版本适配**:由于Android系统版本众多,良好的源码还需要考虑不同版本...
Android的`AsyncTask`或`Retrofit`库可以用来处理网络请求,实现异步操作。 6. **图像与音频**:游戏视觉效果和音效是增强用户体验的关键。开发者可能使用`Bitmap`和`ImageView`处理图像,使用`MediaPlayer`或`...
开发者可能会使用异步加载策略,如AsyncTask或者使用现代的LiveData或RxJava来处理后台任务,以避免阻塞主线程并提高响应速度。 总的来说,【仿QQ选择城市Demo】涵盖了Android开发中的多个重要知识点,包括自定义...
在Android开发中,自定义View是一项常见的任务,它允许开发者根据设计需求创造出独特且符合应用风格的组件。本文将深入探讨如何实现一个“LoadButton”——一个既清新又美观的加载按钮,以此来提升用户体验。 首先...
1. **Android Studio**:项目使用Google的集成开发环境(IDE)——Android Studio,它提供了丰富的工具和功能来支持Android应用的开发。 2. **布局设计**:应用的用户界面(UI)通常由XML文件定义,这些文件包含各种...
6. **Anko库**:Anko是JetBrains提供的一个Kotlin库,简化了Android开发中的常见任务,如Intent创建、Dialogs、AsyncTask等。虽然USDRateService可能不直接与Android界面交互,但Anko的其他非Android功能,如DSL...
在处理大量数据或者网络请求时,可以采用异步加载策略,如使用AsyncTask或者LiveData结合Repository模式。同时,利用RecyclerView的缓存机制,避免不必要的视图复用,提高滑动流畅度。 最后,为了让FunGameRefresh...