设为首页 加入收藏

TOP

Android 用AsyncTask进行异步开发
2014-11-23 23:17:00 来源: 作者: 【 】 浏览:7
Tags:Android AsyncTask 进行 异步 开发

AsyncTask和Handler对比


1 ) AsyncTask实现的原理,和适用的优缺点


使用的优点:


l 简单,快捷


l 过程可控



使用的缺点:


l 在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.


2 )Handler异步实现的原理和适用的优缺点


在Handler 异步实现时,涉及到 Handler, Looper, Message,Thread四个对象,实现异步的流程是主线程启动Thread(子线程)àthread(子线程)运行并生成Message-àLooper获取Message并传递给HandleràHandler逐个获取Looper中的Message,并进行UI变更。


使用的优点:


l 结构清晰,功能定义明确


l 对于多个后台任务时,简单,清晰



使用的缺点:


l 在单个后台异步处理时,显得代码过多,结构过于复杂(相对性)


< xml version="1.0" encoding="utf-8" >
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:id="@+id/textView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
android:id="@+id/progressBar02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style=" android:attr/progressBarStyleHorizontal"
/>
android:id="@+id/button03"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="更新progressbar"
/>


MainActivity.java


package vic.wong.main;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;


public class MainActivity extends Activity {
private Button button;
private ProgressBar progressBar;
private TextView textView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

button = (Button)findViewById(R.id.button03);
progressBar = (ProgressBar)findViewById(R.id.progressBar02);
textView = (TextView)findViewById(R.id.textView01);

button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
ProgressBarAsyncTask asyncTask = new ProgressBarAsyncTask(textView, progressBar);
asyncTask.execute(1000);
}
});
}
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android异步操作总结 下一篇Android中异步加载类AsyncTask的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: