在Android实际开发工程中经常会进行一些诸如:文件读写、访问网络等耗时的操作,这些耗时的操作是不建议放到UI线程里的。所以我们会新开一个线程,在子线程中进行这些耗时的操作,耗时操作过程中,UI经常需要更新,但Android是不允许在子线程中修改UI的。所以就出现了Thread+Handler机制,Thread通过handler向主线程发送消息、传递数据,来更新UI。下面就介绍如何通过Thread+Handler方式实现异步操作。...
分类:
移动开发 时间:
2014-10-18 18:26:52
阅读次数:
289
AsyncTask允许你在你的用户界面上执行异步操作。它在一个子线程中执行耗时的操作,然后在UI线程上发布执行结果,而不需要你来处理Thread和Handler。
要使用AsyncTask,你必须继承AsyncTask和实现doInBackground()回调方法,AsyncTask运行在后台的一个线程池中。若要更新你的UI,你应该实现onPostExecute()方法,它从doInBackground()方法中获取的结果,并运行在UI线程中,这样你就可以安全地更新你的UI。你可以在UI线程...
分类:
移动开发 时间:
2014-10-18 18:25:46
阅读次数:
172
上一篇文章提到了Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的..
分类:
移动开发 时间:
2014-10-18 03:08:41
阅读次数:
187
总的来说:MSG包括:窗口句柄,指示MSG发送的目的窗口消息标识lPARAM、wParam发送时间发送时的鼠标位置关于消息队列:Windows系统有一个系统消息队列每个线程都有一个自己的消 息队列(由于发送消息MSG需 要提供一个窗口HWnd,而基 本有窗口的线程,都是UI线 程),因此基本上如果....
IntentService提供了一种在后台线程中执行任务的方式,适合处理执行时间较长的后台任务。
优点:
(1)IntentService运行在单独的线程中,不会阻塞UI线程
(2)IntentService不受生命周期的影响
缺点:
(1)不能与UI直接进行交互,可以用Broadcast
(2)顺序执行请求,第二个请求只有在第一个请求执行完以后才能执行
(3)请求不能被中断
...
分类:
移动开发 时间:
2014-10-16 15:07:52
阅读次数:
273
1、onPreExecute():在UI线程里面调用,它在这个task执行后会立即调用。我们在这个方法里面通常是用于建立一个任务,比如显示一个等待对话框来通知用户。2、doInBackground(Params...):这个方法从名字就可以看出,它是运行在后台线程的,在这个方法里面,去做耗时的事情,比如..
分类:
其他好文 时间:
2014-10-16 12:51:53
阅读次数:
175
对于轻量级的网络内容获取在Windows Phone上可以采用WebClient类在System.Net.WebClient这个命名空间中,相对于HttpWebRequest类而言WebClient工作在UI线程中,所以可能产生UI死锁问题,这里可以通过多线程的方式来解决。Thread t = ne...
分类:
Web程序 时间:
2014-10-15 10:59:40
阅读次数:
262
我们知道,Android系统为了提高程序的实时响应能力,不允许在UI线程中进行耗时的操作,否则会出现ANR异常,因此必须将耗时的任务放到非UI线程中执行。Android/Java提供了很多类来帮助大家完成异步操作,比如:Thread类,Timer类,AsyncTask类,HandlerThread类,以及Executor接..
分类:
移动开发 时间:
2014-10-15 04:28:00
阅读次数:
360
一、缓存需要多次读取的 DOM元素,对象属性,数组值
二、选取DOM元素,尽量缩小查询范围
三、减少页面回流(reflow)
四、使用事件委托替代事件绑定。
五、其他
1.使用原生js代码替代jquery
2.针对耗时js操作,使用setTimeout定时释放UI线程,防止浏览器假死
...
分类:
编程语言 时间:
2014-10-14 17:25:58
阅读次数:
238
android.os.handler相关知识整理Handler在android里负责发送和处理消息。它的主要用途有: 1)按计划发送消息或执行某个Runnanble(使用POST方法); 2)从其他线程中发送来的消息放入消息队列中,避免线程冲突(常见于更新UI线程)/用来向不属于自己的线程的队列.....
分类:
移动开发 时间:
2014-10-13 16:25:29
阅读次数:
183