Android 非同步和超時處理 例子
阿新 • • 發佈:2019-01-04
大家開發應用的時候往往會用到非同步處理,都是通過繼承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); }