在判断是否有无线网络时,UI界面假死,这时我们需要使用AsyncTask。代码:
1 /** 异步任务 :判断服务器开启才取后台数据 2 * 2014-7-31 3 * @author 吴chunyuan 4 * 5 */ 6 public class MyTask extends AsyncTask<String, Integer, String> { 7 //onPreExecute方法用于在执行后台任务前做一些UI操作 8 @Override 9 protected void onPreExecute() { 10 Log.i(TAG, "onPreExecute() called"); 11 12 } 13 14 //doInBackground方法内部执行后台任务,不可在此方法内修改UI 15 @Override 16 protected String doInBackground(String... params) { 17 //totalText = (TextView) findViewById(R.id.total); 18 Log.i(TAG, "doInBackground(Params... params) called"); 19 20 try{ 21 Socket socket2 =new Socket(); 22 //socket2.connect(new InetSocketAddress(SERVER_ADDRESS, SERVER_PORT)); 23 //设置连接超时 10s 24 socket2.connect(new InetSocketAddress(ServerIP, SERVER_PORT),10000); 25 socket2.close(); 26 27 return String.valueOf(1)+"|"+params[0]; 28 29 } catch (Exception e) { 30 Log.e(TAG, e.getMessage()); 31 return String.valueOf(0); 32 } 33 34 } 35 36 //onProgressUpdate方法用于更新进度信息 37 @Override 38 protected void onProgressUpdate(Integer... progresses) { 39 Log.i(TAG, "onProgressUpdate(Progress... progresses) called"); 40 41 } 42 43 44 // String result 来自doInBackground 45 @Override 46 protected void onPostExecute(String result) { 47 Log.i(TAG, "onPostExecute(Result result) called"); 48 String [] sa =result.split("\\|"); 49 if(result.equals("0")){ 50 MyUtil.showToast(MenuActivity.this, "无法连接服务器"); 51 }else //网络正常 52 53 { 54 55 //网络正常,执行任务...... 56 57 } 58 } 59 60 //onCancelled方法用于在取消执行中的任务时更改UI 61 @Override 62 protected void onCancelled() { 63 Log.i(TAG, "onCancelled() called"); 64 } 65 }