Android常见面试题目一

1:Activity和BroadCast Receiver以及service的生命周期

https://img-my.csdn.net/uploads/201109/1/0_1314838777He6C.gif

2:service和Activity的交互方式

答案:Intent 和 connection 返还一个Ibinder对象来操作。

3:3.UI线程和非UI线程的交互方式,写出几种各自的耗时

答案:Thread+hadnler+message或者runinuithread();

4:http怎么加入超时和代理

Http连接的超时机制能够防止连接线程的无限期等待,一般可分为connect timeout和socket timeout,在Android中可以使用HttpClient和HttpURLConnection建立Http连接,因此存在两种设置超时的方式,首先Socket等待建立连接的超时时间和Socket输入流等待数据到达的超时时间设置如下:
  1. private static final int HTTP_CONNECT_TIMEOUT = 20 * 1000;
  2. private static final int HTTP_SOCKET_TIMEOUT = 20 * 1000;

1)HttpClient方式

  1. HttpClient httpClient = new DefaultHttpClient();
  2. HttpParams params = httpClient.getParams();
  3. HttpConnectionParams.setConnectionTimeout(params, HTTP_CONNECT_TIMEOUT);
  4. HttpConnectionParams.setSoTimeout(params, HTTP_SOCKET_TIMEOUT);

2)HttpURLConnection方式

  1. try {
  2.     URL url = new URL(“http://www.baidu.com”);
  3.     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  4.     conn.setConnectTimeout(HTTP_CONNECT_TIMEOUT);
  5.     conn.setReadTimeout(HTTP_SOCKET_TIMEOUT);
  6. } catch (MalformedURLException e) {
  7.     e.printStackTrace();
  8. } catch (IOException e) {
  9.     e.printStackTrace();
  10. }

Android应用程序访问互联网时,如果处于WIFI或者CMNET、UNINET或者3GNET,CTNET等接入方式时,无需设置代理即可顺利的访问网络,但是如果处于WAP环境下,那么就需要首先设置代理,之后才能访问互联网。Android通过WAP方式联网可参见 http://blog.csdn.net/ace1985/article/details/7844159  跟设置超时一样,设置代理同样有HttpClient和HttpURLConnection两种方式:

1)HttpClient方式

  1. HttpClient httpClient = new DefaultHttpClient();
  2. String host = Proxy.getDefaultHost(); //默认代理服务器地址
  3. int port = Proxy.getDefaultPort(); //默认代理服务器端口号
  4. HttpHost httpHost = new HttpHost(host, port);
  5. HttpParams params = httpClient.getParams();
  6. params.setParameter(ConnRouteParams.DEFAULT_PROXY, httpHost); //设置默认代理

1)HttpURLConnection方式

  1. String host = android.net.Proxy.getDefaultHost(); // 默认代理服务器地址
  2. int port = android.net.Proxy.getDefaultPort(); // 默认代理服务器端口号
  3. SocketAddress socketAddr = new InetSocketAddress(host, port);
  4. // 构造代理对象
  5. java.net.Proxy proxy = new java.net.Proxy(java.net.Proxy.Type.HTTP, socketAddr);
  6. try {
  7.     URL url = new URL(“www.baidu.com”);
  8.     // 设置代理
  9.     HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy);
  10. } catch (MalformedURLException e) {
  11.     e.printStackTrace();
  12. } catch (IOException e) {
  13.     e.printStackTrace();
  14. }



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值