大家开发应用的时候往往会用到异步处理,都是通过继承AsyncTask实现,有时候也伴随着超时做处理,过一段时间不管异步执行完没有都要做下一步事情,
那么我这里有一个简单的实例大家可以看下:
private static final int TIME_DELAY = 1500;
private boolean mIsLoaded;
private boolean mIsTimeOut;
private Handler mHandler;
class InitTask extends AsyncTask<String, Integer, String> {
public InitTask() {
}
@Override
protected String doInBackground(String... params) {
xxx();//异步处理的事情
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
mIsLoaded = true;
if (mIsTimeOut) {
xxx();//异步执行完后的事情
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
}
@Override
public void onBackPressed() {
}
@Override
protected void onResume() {
super.onResume();
mIsLoaded = false;
mIsTimeOut = false;
InitTask mInitTast = new InitTask();
mInitTast.execute();
mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mIsTimeOut = true;
if (mIsLoaded) {
xxx();//超时处理的事情
}
}
}, TIME_DELAY);
}