android 中java编程的意外事件处理
不管你信不信,即使多么熟练编程的人员在coding的时候都会出现意想不到的bug。在上篇文章中我曾提到,bug的造成是多个方面的综合结果,有些bug是可以修复的,但是有些逻辑上的bug要修复可不是那么容易的事情,就像我们做错了一件事情,如果不去从根本上改正就会犯更大的错误一样,有时候bug也是一个积累的过程。
在经历了android上的开发之后,我改变了我最初的想法,让我认识到了即使再简单的开发平台,开发一款产品都需要一个严密的逻辑认证,认证之后再进行开发,不仅能提高代码的生产效率,还能减少很多产品的bug。
下面是我遇到的一些基本简单的bug,但是修复却花费了一段时间:
(1)android.view.WindowManager$BadTokenException: Unable to add window --
token android.os.BinderProxy@342917f8 is not valid; is your activity
running?
是由于有activity时依附于另一个activity的,当被依附的activity产生错误的时候,该activity没有了靠山而产生错误。对于这个错误
还没有根本的解决办法,唯一的办法就是改变该activity依附于另一activity的事实,将其放入另一activity。
(2)01-13 17:21:04.408: WARN/System.err(20476): java.net.SocketException: The connection was reset
原因是由于没有关闭socket链接造成的。
(3)java.net.SocketTimeoutException: The operation timed out
该问题是由于没有捕获链接超时的异常导致的错误。需要在代码后面
catch(SocketTimeoutException e){
sendMessage(FILE_DOWNLOAD_ERROR, e);
}
(4)android.view.WindowLeaked: Activity com.*.* has leaked window
相关文档:
1. 布局管理器
容器里组件的大小和位置是由布局管理器来决定的。容器对布局管理器的特定实例保持一个引用,当容器需要定位一个组件时,它将调用布局管理器来完成,决定一个组件的大小时也是如此。
在awt中有五种布局管理器
BorderLayOut
FlowLayOut
GridLayOut
GardLayOut
GridBagLayOut
1. & ......
import javax.swing.JOptionPane;
public class San {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
&n ......
4. 高性能
虽然java是解释执行的,但它仍然具有非常高的性能,在一些特定的CPU上,java字节码可以快速的转换成为机器码进行执行。而且java字节码格式的设计就是针对机器码的转换,实际转换时相当简便,自动的寄存器分配与编译器对字节码的一些优化可使之生成高质量的代码。随着java虚拟机的改进和"即时编译"(just in ......
最强烈推荐-我的java收藏夹(内有国内最好的java论坛)
www.chinajavaworld.com -论坛人很多,高手也多,不过好像都在潜水
www.cn-java.com -也很不错,文章很好,但是就是商业性浓了点。
www.chinaitlab.com-非常有系统性,而且推出的java远程教育是中国最全面的scjp远程教育。 www.huihoo. ......
1. 先写一个Singleton的class
package stone;
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance(){
if(instance==null)
&n ......