Android判断服务器是否开启,试了很多方法都不行(若server未开启会卡在HttpResponse那),有人说高版本的Android程序不允许在主线程中访问网络(主线程中可以读写网络流)有待于验证。(更正:不是说的不允许访问,而是很耗时,会假死(不耗时则不会假死);正解:当用户点击一个按钮时如果执行的是一个常耗时操作的话,处理不好会导致系统假死,用户体验很差,而Android则更进一步,如果任意一个Acitivity没有响应5秒钟以上就会被强制关闭,因此我们需要另外起动一个线程来处理长耗时操作,而主线程则不受其影响,在耗时操作完结发送消息给主线程,主线程再做相应处理。那么线程之间的消息传递和异步处理用的就是Handler。


方法一:

在xxxActivity的onCreate()方法中添加

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();StrictMode.setThreadPolicy(policy);

这两句代码在我写的Activity中本来就添加着,这个方法没有解决我的问题,go on.....


solution 2:

package siat.hpc.ngb.utils;import java.io.IOException;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import android.os.AsyncTask;import android.util.Log;public class ConnServer extends AsyncTask<String,String,String>{/** *  * 判断服务器是否开启 * @param  path   网络服务器地址 * @return  * 服务器开启 * 服务器未开启 */@Overrideprotected String doInBackground(String... params) {// TODO Auto-generated method stubtry {HttpGet get = new HttpGet(params[0]);Log.i("doInBack1...",params[0]);HttpResponse response = new DefaultHttpClient().execute(get);Log.i("doInBack2...",params[0]);if(response.getStatusLine().getStatusCode() == 200){return "success";} } catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();return "ClientError";} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return "ServerError";}return "success";}}

在需要的地方直接调用:

if(new ConnServer().execute(AppConstant.BASE_URL).equals("success")){ 
。。。<pre name="code" class="java" style="font-size: 18px;">。。AppConstant.BASE_URL是一个http的字符串:如http://172.21.6.233:8080/

  
}

refer:http://stackoverflow.com/questions/19162272/httpclient-executehttppost-on-android-4-2-error

更多相关文章

  1. 关于“Android SDK manager中不出现完整Android版本安装包列表”
  2. android 客户端访问服务器端
  3. Android关于apk版本更新方法
  4. Android之gallery 常见2种使用方法和3D效果总结
  5. 关于使用android系统设备充当web服务器的一点准备
  6. Android 主线程到底是什么、如何抛出ANR
  7. Android聊天客户端Demo,开源了.基本功能都有,数据库,服务器都Ok

随机推荐

  1. Android(安卓)之窗口小部件-Gridview
  2. Android(安卓)源码编译学习笔记(一)
  3. Unable to install Android(安卓)Studio
  4. Android开发者文档笔记(一)
  5. Android(安卓)SDK下载和更新失败的解决方
  6. Android(安卓)UI设计的三种常见布局(Linea
  7. INSTALL_FAILED_MISSING_FEATURE
  8. Android之修改短信程序
  9. Android(安卓)怎么获取手机端的ip地址
  10. eclipse开发android