- 浏览: 416724 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (255)
- Android (53)
- java (57)
- javascript (7)
- linux (19)
- springside3 (6)
- spring (2)
- struts2 (11)
- hibernate (2)
- jsp&servlet (15)
- jquery (1)
- ExtJs (5)
- freemarker (1)
- apache (5)
- mysql (3)
- tomcat (3)
- eclipse&maven (23)
- 电脑小技巧 (1)
- 配置安装 (3)
- 开源框架 (2)
- 设计模式 (2)
- 架构 (2)
- ajax (1)
- 正则表达式 (7)
- 测试 (2)
- 装修 (1)
- 不错的软件 (4)
- http协议 (2)
- 网络 (2)
- windows (2)
- nodejs (1)
最新评论
-
yhyx:
好
JAVA URI URL区别 -
dingbuoyi:
我文章很早以前写的啊 估计软件版本早更新了 你要自己研究一下
windows下Sublime Text 2开发 Nodejs -
di1984HIT:
写的很好,学习了
【转帖】IP网段的计算和划分 -
农民柏柏:
感谢分享
【转】Android实现人人网点击“+”弹出效果 -
lianwanf:
大神,求源码,很想要那jar包.官方的不懂下载啊.谢谢啊. ...
开源框架ignition[二]
一个典型的AsyncTask应用
public class DialogTestActivity extends Activity { private Button button1; private Task task; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (task != null && task.getStatus() == AsyncTask.Status.RUNNING) { Toast.makeText(DialogTestActivity.this, "task 正在运行", Toast.LENGTH_SHORT).show(); //task.cancel(true); // 如果Task还在运行,则先取消它 //task = null; } else { task = new Task(); task.execute(); } } }); } @Override protected void onDestroy() { super.onDestroy(); // 用户按回退的时候要取消正在进行的任务 task.cancel(true); } private class Task extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { super.onPreExecute(); Toast.makeText(DialogTestActivity.this, "task 开始运行", Toast.LENGTH_SHORT).show(); } @Override protected Void doInBackground(Void... params) { try { // 模拟耗时操作 比如网络连接等 Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } // 判断如果task已经cancel就没有必须继续进行下面的操作 if (!isCancelled()) { System.out.println("task 如果被cancel,就不会显示"); } return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); Toast.makeText(DialogTestActivity.this, "task 完成", Toast.LENGTH_SHORT).show(); // 所有调用当前context的对象要注意判断activity是否还存在 // 典型的比如弹窗 if (!isFinishing()) { try { createAlertDialog().show(); } catch (Exception e) { } } } @Override protected void onCancelled() { super.onCancelled(); System.out.println("task 取消"); } } private AlertDialog createAlertDialog() { return new AlertDialog.Builder(DialogTestActivity.this).setTitle("fadfasdf") .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { } }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { } }).create(); } }
发表评论
-
listview 几个重要属性
2012-06-20 06:54 1019参考资料 http://www.cnblogs ... -
android项目mvn开发
2012-06-19 07:12 975项目主页 http://code.google.com/p/m ... -
关于AsyncTask的RejectedExecutionException异常
2012-06-24 19:24 3221当运行的AsyncTask 实例数量过多的时候会引发Rejec ... -
android.view.WindowManager$BadTokenException: Unable to add window -- token andr
2012-06-08 09:59 13104因为使用了AsyncTask 异步线程在线程完成以后的onPo ... -
ADT 17 导入JAR包
2012-06-07 17:48 1202引用 Eclipse ADT 17 以上版本用户,请在工程目录 ... -
android textview 自动链接网址 修改默认点击事件
2012-06-06 18:04 108141 修改XML文件即可,android:autoLink=&q ... -
【转】Android项目更换开发环境时出现的 java.lang.VerifyError 异常解决办法
2012-06-06 07:55 977引用 项目是从同事的电脑上直接拷贝过来的,项目里面的jar包是 ... -
android 判断Service是否开启
2012-05-31 10:12 3545被判断的Service 必须是带包名的全名 通过Servic ... -
android 写入收件箱
2012-05-21 10:58 859<uses-permission android: ... -
ndroid junit入门(四)Service测试
2012-05-18 11:26 809public class TestService exte ... -
android junit入门(五)@SmallTest@MediumTest@LargeTest
2012-05-18 11:00 4008原文http://googletesting.blogspot ... -
android junit入门(三)Application测试
2012-05-18 10:54 1149测试Application public class T ... -
android junit入门(二)Activity测试
2012-05-18 10:38 2368测试ACTIVITY 直接上类了 public clas ... -
android junit入门(一) JUNIT测试
2012-05-18 09:54 1366新建ANDROID TEST项目 ECLIPSE右键--> ... -
imagebutton 带文字
2012-05-16 13:59 929<FrameLayout ... -
android orm
2012-05-10 17:58 1008选择了http://ormlite.com/ 里面还支持AN ... -
android 隐藏虚拟按键
2012-05-09 16:14 11230一 全部隐藏 可以试下 <uses-sdk andro ... -
android 切图
2012-05-03 15:19 14761 程序launcher icons规格 3 ... -
新浪微博API杂记
2012-05-02 17:14 9351 获取指定用户的微博 https://api.weibo.c ... -
获取新浪微博的ACCESS_TOKEN
2012-05-02 16:00 58201 https://api.weibo.com/oauth2/ ...
相关推荐
而在Android 9.0(API Level 28)之后,AsyncTask被弃用,推荐使用其他异步处理机制,如`Executor`服务。 综上所述,AsyncTask是Android中处理短时、轻量级异步任务的工具,它简化了多线程编程,并确保了UI线程的...
通过以上对 AsyncTask 的源码解析和使用方法的介绍,你应该对如何在 Android 应用中高效地使用异步任务有了更深入的理解。在实际开发中,正确理解和使用 AsyncTask 可以帮助我们编写出更加流畅、响应快速的应用程序...
在使用AsyncTask时,需要注意以下几点: - **创建和执行**:Task的实例必须在UI线程中创建,`execute`方法也必须在UI线程中调用,否则可能导致运行时错误。 - **生命周期**:一个AsyncTask实例只能执行一次,多次...
AsyncTask是Android平台中用于在后台执行耗时操作并更新UI的一种工具类。它主要设计用来简化异步...通过查看AsynctaskDemo的源代码,我们可以学习到如何正确地使用AsyncTask来避免阻塞UI线程,同时保持与用户的交互。
`AsyncTask`还提供了取消任务、监控任务进度等功能,但需要注意的是,由于`AsyncTask`的生命周期与Activity绑定,若Activity被销毁,未完成的`AsyncTask`可能会导致内存泄漏。 接下来是`ListView`的优化。`ListView...
AsyncTask是Android中一个用于在后台线程执行耗时操作并更新UI的工具类,它非常适合处理...通过实践这个demo,你会对Android中的异步编程有更深入的认识,也能更好地掌握AsyncTask的使用技巧,提高应用程序的用户体验。
在Android开发中,异步操作是一项重要的任务,特别是在处理耗时操作如...但如果你的项目支持的最低API版本较低,`AsyncTask`仍然是一个可行的选择。在实际开发中,要根据项目需求和目标设备选择最合适的异步处理方案。
AsyncTask的使用非常简单,首先创建一个继承自AsyncTask的子类,然后重写doInBackground()方法,将需要后台执行的任务放入这个方法。例如: ```java public class MyTask extends AsyncTask, Integer, String> { @...
这意味着多个AsyncTask可能会并发执行,如果你希望它们按顺序执行,需要自行管理。 9. **生命周期问题**:AsyncTask与Activity的生命周期紧密关联。如果在Activity销毁时AsyncTask仍在执行,可能会引发错误。因此,...
在`AsyncTaskPractice`这个项目中,你可以看到如何创建和使用AsyncTask的实例,以及如何处理网络请求和进度更新的具体实现。通过分析源代码,可以更深入地理解AsyncTask的工作流程和应用场景。 总的来说,AsyncTask...
在Android开发中,异步处理是非常重要的一环,特别是在与服务器进行数据交互时,为了保持UI线程的流畅性,避免出现"应用无响应"(ANR)的情况,开发者通常会使用`AsyncTask`。本例子是关于如何将`AsyncTask`与`...
3. **避免频繁使用**:过多的`AsyncTask`会消耗系统资源,尽量合并相似的任务,或者考虑使用其他的异步处理机制,如`IntentService`或`Worker`。 ### 结合开发规范 在`Android开发规范.docx`文档中,可能会包含...
下面将详细解释AsyncTask的工作原理和如何使用它来实现异步下载图片。 首先,AsyncTask有三个泛型参数:Params, Progress, Result,分别代表了任务的输入参数类型、进度类型和返回结果类型。在实际应用中,我们通常...
AsyncTask 是 Android 平台上一种轻量级的异步处理机制,主要用于在后台执行耗时操作,同时确保结果能够在主线程中安全地更新 UI。...正确理解和使用 AsyncTask,可以帮助开发者更高效地构建用户界面,提升用户体验。
这意味着如果你尝试并发执行多个AsyncTask,它们将按照队列顺序依次执行。 3. **版本兼容性**:自Android 3.0(API级别11)开始,AsyncTask默认在单独的线程池中执行,而在早期版本中,它们默认在主线程中执行。...
需要注意的是,Android系统会根据内存情况自动取消不再使用的`AsyncTask`实例,因此在大型项目中,特别是涉及到多个`AsyncTask`的场景,合理管理`AsyncTask`的生命周期非常重要。此外,从Android 3.0(API级别11)...
本资料包主要讲解了如何使用`AsyncTask`进行异步加载图片,这对于在UI线程中保持流畅用户体验至关重要。 `AsyncTask`是Android SDK中的一个类,它为开发者提供了简单的多线程和回调功能。它的核心思想是将长时间...
AsyncTask_简单演示AsyncTask异步操作,写一个简单的AsyncTask异步操作解决上一篇文章提到的线程阻塞问题,对应我的博客《网易博客迁移:Android专题之AsyncTask(二)简单演示AsyncTask异步操作》,有问题欢迎留言...
下面我们将深入探讨AsyncTask的结构、使用方法以及注意事项。 1. **AsyncTask结构**: AsyncTask是一个抽象类,包含三个泛型参数:`Params`(输入参数类型),`Progress`(后台执行过程中的进度类型),`Result`...
Android异步任务AsyncTask使用解析 Android异步任务AsyncTask使用解析是指在Android应用程序中使用AsyncTask来实现异步任务的处理。AsyncTask是一个抽象类,使用时需要继承这个类,然后调用execute()方法。...