虽然说目前AsyncTask有缺点被淘汰,但是还是要搞懂其基本使用,该懂的还是要知道。
首先是创建AsyncTask异步任务类,里面的主要有四种方法,分布是开始(onPreExecute),执行(doInBackground),结束(onPostExecute),进度(onProgressUpdate)在执行方法中写要异步完成的任务,其返回执行结果。
public class ReadSourceDateAsyncTask extends AsyncTask<String, Integer, String> {
private Context context;
private SensorManagerController instance;
public ReadSourceDateAsyncTask(Context context, SensorManagerController instance) {
this.context = context;
this.instance = instance;
}
@Override
protected String doInBackground(String... strings) {
return originSensorValue;
}
/**
* 开始前的操作
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.d(TAG, "ReadSourceDateAsyncTask start....");
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.d(TAG, "ReadSourceDateAsyncTask finished !");
}
}
mReadSourceDateAsyncTask.execute().get(3000, TimeUnit.MILLISECONDS);
用以开启任务。其中3000是超时未结束执行相关操作。
mReadSourceDateAsyncTask.cancel(true);
取消异步任务。