转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11711405我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。之前我也写过了一篇文章从源码层面分析了Andr...
分类:
移动开发 时间:
2014-10-22 23:23:48
阅读次数:
327
============问题描述============ 最近在做一个应用,实时检测网络信号,日志是系统自动抓取,一个服务检测日志达到一定条件,开始压缩归档,我用asynctask去检测网络信号,将信号值通过progress更新到前台,应用启动后,开启一个服务去检测日志情况。现在的问题是日志达到条件...
分类:
移动开发 时间:
2014-10-22 00:48:29
阅读次数:
236
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式须要为每个任务创建一个新的线程,任务完毕后通过Handler实例向UI线程发送消息,完毕界面的更新,这样的方式对于整个过程的控制比較精细,但也是有缺点的,比如代码相对臃肿,在多个任务同一时候运行时,不...
分类:
移动开发 时间:
2014-10-19 14:09:04
阅读次数:
267
AsyncTask允许你在你的用户界面上执行异步操作。它在一个子线程中执行耗时的操作,然后在UI线程上发布执行结果,而不需要你来处理Thread和Handler。
要使用AsyncTask,你必须继承AsyncTask和实现doInBackground()回调方法,AsyncTask运行在后台的一个线程池中。若要更新你的UI,你应该实现onPostExecute()方法,它从doInBackground()方法中获取的结果,并运行在UI线程中,这样你就可以安全地更新你的UI。你可以在UI线程...
分类:
移动开发 时间:
2014-10-18 18:25:46
阅读次数:
172
AsyncTask的实现原理就是封装了的线程池,具体见AsyncTask实现原理。在1.5中初始引入的时候, AsyncTask 执行( AsyncTask.execute() )起来是顺序的,当同时执行多个 AsyncTask的时候,他们会按照顺序一个一个执行。前面一个执行完才会执行后面一个。这样...
分类:
其他好文 时间:
2014-10-18 08:34:41
阅读次数:
221
AsyncTask在android4.0之后android采用线程池来实现,最多开5个线程,所以几个AsyncTask执行的时候顺序是随机的,
如果5个AsyncTask顺序执行之后,又有一个AsyncTask,那最后一个会被挂起,当5个AsyncTask有一个被执行完以后最后一个会被插入执行
public class TestActivity extends Activity {
...
分类:
移动开发 时间:
2014-10-16 17:59:40
阅读次数:
186
1、onPreExecute():在UI线程里面调用,它在这个task执行后会立即调用。我们在这个方法里面通常是用于建立一个任务,比如显示一个等待对话框来通知用户。2、doInBackground(Params...):这个方法从名字就可以看出,它是运行在后台线程的,在这个方法里面,去做耗时的事情,比如..
分类:
其他好文 时间:
2014-10-16 12:51:53
阅读次数:
175
国庆节放假,搞了半个月都没有上班了,coding的时候一点都不在状态,本来这篇文章是在国庆节前写完的,但是因为自己的懒惰,导致延期到国庆节,哎,这种习惯真心不好呀。。。不多说了下面来进入正题之前我们解读了Handler机制,今天再来看一下AsyncTask类,因为这两个类使我们在Android进行耗时的操作的时候,不影响主线程的情况下经常使用的两个类,我们先来看一下AsyncTask类源码中定义的...
分类:
移动开发 时间:
2014-10-15 18:53:11
阅读次数:
180
我们知道,Android系统为了提高程序的实时响应能力,不允许在UI线程中进行耗时的操作,否则会出现ANR异常,因此必须将耗时的任务放到非UI线程中执行。Android/Java提供了很多类来帮助大家完成异步操作,比如:Thread类,Timer类,AsyncTask类,HandlerThread类,以及Executor接..
分类:
移动开发 时间:
2014-10-15 04:28:00
阅读次数:
360
布局很简单,就一个按钮,主要看一下MainActivity吧:
package com.francis.httpget;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuIte...
分类:
移动开发 时间:
2014-10-14 23:23:19
阅读次数:
190