大家开发应用的时候往往会用到异步处理,都是通过继承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); }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/jia4525036/article/details/46859613