Android 进程和线程模型
作者:网络转载 发布时间:[ 2012/10/8 10:41:35 ] 推荐标签:
AsyncTask
首先继承一下此类,实现以下若干方法:
1)onPreExecute(),该方法将在执行实际的后台操作前被UI thread调用。可以在该方法中做一些准备工作,如在界面上显示一个进度条。
2)doInBackground(Params...),将在onPreExecute 方法执行后马上执行,该方法运行在后台线程中。这里将主要负责执行那些很耗时的后台计算工作。
可以调用publishProgress方法来更新实时的任务进度。该方法是抽象方法,子类必须实现。
3)onProgressUpdate(Progress...),在publishProgress方法被调用后,UI thread将调用这个方法从而在界面上展示任务的进展情况,例如通过一个进度条进行展示。
4)onPostExecute(Result),在doInBackground 执行完成后,onPostExecute 方法将被UI thread调用,后台的计算结果将通过该方法传递到UI thread.
使用时需要遵循以下规则:
1)Task的实例必须在UI thread中创建
2)execute方法必须在UI thread中调用
3)不要手动的调用这些方法,只调用execute即可
4)该task只能被执行一次,否则多次调用时将会出现异常
示例如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.weather_city_edit);
Button button = (Button) findViewById(R.id.goQuery);
button.setOnClickListener(this);
}
public void onClick(View v) {
new GetWeatherTask().execute(“aaa”);
}
class GetWeatherTask extends AsyncTask<String, Integer, String> {
protected String doInBackground(String... params) {
return getWetherByCity(params[0]);
}
protected void onPostExecute(String result) {
setTitle(result);
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11