- 测试代码
public class MainActivity extends AppCompatActivity {
private static final String TAG = "xx";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final AsyncTask<Void, Integer, String> task = new AsyncTask<Void, Integer, String>() {
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.e(TAG, "onPreExecute" + " " + Thread.currentThread().getName());
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.e(TAG, "onPostExecute " + s + " " + Thread.currentThread().getName());
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
for (int i = 0; i < values.length; i++) {
Log.e(TAG, "onProgressUpdate " + values[i] + " " + Thread.currentThread().getName());
}
}
@Override
protected void onCancelled(String s) {
super.onCancelled(s);
Log.e(TAG, "onCancelled(s) " + s + " " + Thread.currentThread().getName());
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.e(TAG, "onCancelled" + " " + Thread.currentThread().getName());
}
@Override
protected String doInBackground(Void... voids) {
Log.e(TAG, "doInBackground" + " " + Thread.currentThread().getName());
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(100);
publishProgress((i + 1) * 10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "zhangsan";
}
};
task.execute();
}
}
- 增加取消操作
// 在 task.execute()后面添加
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
task.cancel(true);
}
}, 200);
执行效果