摘要: Activity的生命周期,在Android里面的界面跳转间界面的还回,一般有两种方式一种是自己写函数finish掉当前窗口activity界面就自动还回到原来的界面了。其实这种调用finish函数来结束自己生命周期的activity并没有消亡,而是存留在缓存中,一旦需要新创建的时候就从缓存中把这个调用出来。 还有一种就是用系统自带的还回按钮,这个时候界面的跳转是一个进堆栈出堆栈的过程,返回过程就是把堆栈中顶部的activity出栈,此时顶部的Activity生命周期就结束了。 在界面的进栈过程中,前一个activity在后跳转的这个activity运行到前台并完全覆盖了前一个activit. 阅读全文
posted @ 2012-08-30 18:53 乌托邦. 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 别的不说了,没什么好说的。只是有一点这个是为了适应不同分辨率的屏幕而系统自动生成的四个文件夹,可以把同一张图片缩放生四份放到四个文件夹里面。然后系统在调用时会自动选择最佳匹配的照片。当然了,这四张照片必须起一个同样的名字。不然的话系统就会自动缩放照片尺寸以适应系统屏幕大小 阅读全文
posted @ 2012-08-27 20:15 乌托邦. 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 窗口的定制有两种:窗口创建前和创建后创建前定制是在PreCreateWindow()函数体内利用系统传过来的CREATESTRUCT对象的成员变量来改变窗口的各属性。修改窗口的光标、图标、背景:由于这些内容都是窗口类的设计和注册在MFC底层代码自动完成的。我们也可以编写自己的窗口类并注册然后让随后的窗口按照我们编写的窗口类去创建。在PreCreateWindow()函数体内自定义一个WNDCLASS类型的对象变量,并一一给各属性赋值。然后让窗口按照我们定义的窗口类型去生产(改变CREATESTRUCT对象的lpszClass属性为我们自定义类型的名字)创建后更改是在OnCreate函数内利用S 阅读全文
posted @ 2012-08-12 16:13 乌托邦. 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 属性表单CPropertySheet其实就是常见的下一步下一步那种操作对话框,每个属性表单是由多个属性页CPropertyPage组成的 阅读全文
posted @ 2012-08-11 22:36 乌托邦. 阅读(633) 评论(0) 推荐(0) 编辑
摘要: MFC里面的控件消息监听对事件的处理。 如果一个个的对每一个控件一一添加消息不免显得太麻烦,特别是对于同一类控件的处理的时候,如果这么做显得更加麻烦。联想到Java里面的可以自定义监听器然后让每个相同控件去监听就可以了。其实在MFC里面也可以这么做,不过过程相对麻烦,原理大致差不多。 首先添加一个自定义类(必须继承与相对应的控件类),然后将添加的控件利用wizard产生一个与自定义类相关联的变量。这样就产生了控件与自定义类相关联。然后在自定义类里面添加windows消息处理函数。 这样就实现了与JAVA自定义事件类相类似的消息处理方式。 阅读全文
posted @ 2012-08-11 19:58 乌托邦. 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 刚才实验了一下,用UDP协议还是不能传过大的文件,必须手动分片。利用TCP我传了一个4M的文件没什么问题,但换成4G的文件就要么卡死了要么报错,估计也是行不通的原因。 看了下TCP传文件的源码,其实在传文件之前都发送了几个非数据包,包括的信息有文件的大小,文件的名字等等。然后再发送数据包,可见将数据包和非数据包区分开来是很重要的。 换言之,如果用UDP协议来传文件的话,由于不知道UDP发送出去的数据包的到达顺序,因此无法判断谁是数据包谁不是数据包,显得很麻烦、再加上目的端的数据包顺序重组、丢失的包重发等重要特征使得利用UDP协议发送数据包显得更加麻烦。要利用UDP传文件可以借鉴FTP下载协议 阅读全文
posted @ 2012-08-06 21:01 乌托邦. 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-08-02 21:04 乌托邦. 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-08-02 21:03 乌托邦. 阅读(130) 评论(0) 推荐(0) 编辑
摘要: Java里面某些类的部分成员函数带着deep前缀,与不带deep前缀的相比,这些函数会深层次深入到数组的维数去比较两个数组或容器对象。如:int[][] intArray2Temp1 = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };int[][] intArray2Temp2 = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };//比较首地址System.out.println(intArray2Temp1 == intArray2Temp2);//比较首地址System 阅读全文
posted @ 2012-08-01 22:04 乌托邦. 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 没有实现Comparable接口的类数组如果要求实现Arrays.sort()排序功能,可以利用匿名内部类Comparator()来实现排序,例如:Arrays.sort(tt,new Comparator<test>() { @Override public int compare(test arg0, test arg1) { // TODO Auto-generated method stub if (arg0.index > arg1.index) { return 1; } else if (arg0.index < arg1.index... 阅读全文
posted @ 2012-08-01 22:03 乌托邦. 阅读(124) 评论(0) 推荐(0) 编辑