工作三天了,boss终于给我个任务让我做了,是我不是很擅长的android方面的一个bug修改。
话说工作第三天:
boss:客户说“这个显示框太难看了!”,你们要给他改好看一些。
缪:恩,好的。
。。。
我是个新人,当然轮不到我做什么客户必须要求做的了,可是他们都太忙了,发哥说,××,你也做过android开发,这个事儿,小缪太忙了,你看看能不能做出来!(敢不答应?敢说不好?)我说好,我尽快解决问题。
话了半个上午的哦时间终于把android开发平台搭建好,一看具体的问题,我离歌擦类!!!这不是传说中的anr么?要我改他的显示?!
Google是最好的老师,我不会,就虚心的想Google求教,好话说了一大堆,可是还不告诉我怎么办!![img]/images/smiles/icon_eek.gif" alt="[/img]
只会是不行的,还得解决问题,向一个android的茂才公求援,茂才公居然也不知道[img]/images/smiles/icon_surprised.gif" alt="[/img][img]/images/smiles/icon_confused.gif" alt="[/img].
只会更是不行的,还得解决问题啊!
根据对对象的理解:创建-->初始化---->使用 三个过程的理解,要是能够找到ANR警告框的这三个过程,然后修改一下显示,不就OK?[img]/images/smiles/icon_biggrin.gif" alt="[/img],找了好久终于还是没有找到![img]/images/smiles/icon_mad.gif" alt="[/img] 找不到,不能改!
既然不能改,那就不让你出来丢人现眼了。
于是,目标就转到代码优化上,根据茂才公的提示,弄了几个线程,居然还是频频出来献丑!!
那就看日志文件吧,看到头大然后又头小之后,发现是网络连接Timeout导致的anr,那就追踪吧,看到一个网络连接测试是否通畅的代码:
public static int checkNet(Context context) {
ConnectivityManager connectionManager = (ConnectivityManager) context
.getSystemService("connectivity");
NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();
if(networkInfo != null){
if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return 1; //返回1是 WIFI网络
} else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return 2; //返回 2是移动互联网()
} else {
return 3; //返回3是 未知网络
}
}
else{
return 0;
}
}
看着,也没有问题啊,然后
仔细的看看,想,要是不能上互联网就不能连接这个程序了?开门了,还是比较眷顾努力工作的同学的。
发现问题之后就想怎么来更有效的来验证网络是否通畅,android自带的方法我竟然不知道,就用我知道的socket来解决问题,
/**
* 检查是否能够连接到特定的主机
* @param hostName 主机的 ip
* @param port 主机的 端口
* @return 是否能够连接成功
* 因为不知道timeout的时间设置为多少合适,这里就自作主张了
*/
public static boolean canConnection(String hostName,int port){
boolean connect =false;
Socket socket = new Socket();
try {
SocketAddress endpoint = new InetSocketAddress(hostName, port) ;
//这里可以设置检验的时间
int timeout = 100;//这个是自定义的
socket.connect(endpoint, timeout);
connect = socket.isConnected();
} catch (Exception e) {
connect = false;
//System.out.println("connection ioe");
}finally{
socket = null;
return connect;
}
}
到这里,anr终于被我管在家里了,不出来污染大家的美好环境里!
就是不知道我这样做是不符合boss的要求?没有用到美工,担心中。。。