⑴ android为什么要用异步任务
一般Android中的异步都是用在网络请求时,而网络请求都有一些延时,如果都放在主线程中就会出现屏幕卡住的现象,这样会影响用户操作效果。。。
⑵ android异步和同步的区别是什么
异步就是不同Android设备之间信息不完全一致,比如说你在一台手机上更新了通讯录,同步就是这个新的通讯录信息在你所有设备上同步更新,异步就是只有这一台设备的通讯录更新,其他设备信息不会变动
⑶ android 同步和异步的区别
在中国没区别 关了自动同步国外软件就不会接收消息了,国内软件(QQ 微信)开不开都自动接收。
⑷ android 什么是异步加载
因为我们都知道在Android中的是单线程模型,不允许其他的子线程来更新UI,只允许UI线程(主线程更新UI),否则会多个线程都去更新UI会造成UI的一个混乱有些耗时的操纵(例如网络请求等),如果直接放到主线程中去请求的话则会造成主线程阻塞,而我们系统有规定的响应时间,当响应的时间超过了了阻塞的时间就会造成"Application No Response",也就是我们熟知的ANR错误解决上述问题的时候:我们一般使用的是线程或者线程池+Handler机制如果线程拿到一个数据需要去更新UI,那么就需要Handler把子线程的更新UI的数据发消息给主线程,从而让主线程去更新UI那么还在使用Thread或ThreadPool+Handler的你是否已经厌倦这些繁琐的操纵而且你会发现这些操作的代码都很类似。所以AsyncTask就应运而生了。
⑸ android什么叫异步请求,怎么实现
一.异步请求主要解决线程无法更新UI组件的方案
使用Handler实现线程之间的通信。
Activity.runOnUiThread(Runnbale)
View.post(Runnable)
View.postDelayed(Runnable)
二.ANR异常
Android默认约定当UI线程阻塞超过20秒将会引发ANR异常。开发者必须牢记,不要在UI线程中执行一些耗时操作
三.AsyncTask抽象类
AsyncTask<Params,Progress,Result>是一个抽象类,通常用于被继承,继承AsyncTask需要指定三个泛型参数:
Params:启动任务执行的输入参数的类型
Progress:后台任务完成进度值得类型
Result:后台执行任务完成后返回结果的类型
四.AsyncTask的特点
更轻量一些,适用于简单的异步处理,不需要借助线程和Handler即可
五.使用AsyncTask的步骤
创建AsyncTask的子类,并为三个泛型参数指定类型,如果某个泛型参数不需要指定类型,可将它设为Void
根据需要,实现AsyncTask的如下方法:
doInBackground(Params...):后台线程将要完成的任务,可以调用publishProgress(Porgress...values)方法更新任务执行进度。
onProgressUpdate(Porgress..values):在doInBackground()方法中调用publishPorgress()方法更新任务的执行进度后,就会触发该方法
onPreExecute():执行后台耗时操作前被调用,通常用户完成一些初始化操作,比如在界面上显示进度条
onPostExecute(Result result):当doInBackground()完成后,系统会自动调用onPostExecute()方法,并将doInBackground()方法返回的值传给该方法.
调用AsyncTask子类的实例的execute(Params...params)开始执行耗时任务
六.使用AsyncTask时必须遵守的规则
必须在UI中创建AsyncTask的实例
必须在UI线程中调用AsyncTask的execute()方法
AsyncTask的onPreExecute()、onPostExecute(Result result)、doInBackground(Params....params)、onProgressUpdate(Progress...values)方法,不应该由程序员代码调用,而是由AsyncTask系统负责调用
每个AsyncTask只能被执行一次,多次调用将会引发异常。
⑹ android网络请求数据是同步还是异步
异步请求,因为UI线程(主线程)不允许有5秒以上的耗时操作.在主线程网络请求会导致阻塞,看起来程序就像假死了一样.所以都是异步请求.
⑺ android什么时候异步,什么时候用多线程
不能同步的时候或不想同步的时候,就用异步 如: 你向webservice请求了个数据,但你不知道什么时候能收到回复,这时就要使用异步方式进行获取 再如:asp.net中使用ajax控件实现页面无刷新的后台请求 多线程是用来解决单线程阻塞的,也可以适当提升性
⑻ 在Android中什么是异步执行
异步 和 同步的区别
异步的好处,就是把一些东西,特别是耗时间的东西扔到后台去运行了,doInBackground,程序可以继续做自己的事情,防止程序卡在那里失去响应。
同步执行的话,就是程序会呆板地从头执行到尾,耗时间的东西不执行完,程序不会继续往下走,等待时间长的话,有时候就会造成失去响应了
⑼ android什么样的消息属于异步消息
异步消息和线程的区别在于,线程执行完run()方法后,线程就结束了,而异步消息是在线程内部有一个消息队列,写一个死循环,
一直去消息队列里去取消息,然后根据消息类型处理相应的操作,如果取不到消息就一直在等待。
异步认为一般用于:任务需要常驻,比如处理用户交互的屏幕触摸事件处理;根据不同的消息类型处理不同的操作。
实现上就是:
1.每个异步任务要有一个消息队列;
2使用while(true)无限循环,读取消息,处理消息,执行回调函数等;
3,外部可以向队列发消息,消息队列注意线程安全。