摘要: 如何按返回键退出程序一、tabhost 中 此行代码public boolean onKeyDown(int keyCode, KeyEvent event)无法监听到 返回键;需重写public boolean dispatchKeyEvent(KeyEvent event)二、通过dispatchKeyEvent 监听到的 back返回键,有up 和 down 状态(按下和弹起),会导致 onclik 事件执行两次,如弹出对话框两次,而导致,如果在一个对话框事件后finish掉一个activity,又再次弹出对话框而产生异常:logcat05-04 06:11:54.184: E/Wind 阅读全文
posted @ 2012-05-04 10:57 antoniohu 阅读(321) 评论(0) 推荐(0)
摘要: #单一职责原则#定义:接口做到单一职责,类的尽量做到只有一个引起其变化的原因优点:降低变更引起的风险,修改接口只对相应的实现类有影响一句话总结:各司其职里氏替换原则定义:所有引用基类的地方必须能透明地使用其子类对象1、子类必须完全实现父类的方法2、子类可以有自己的个性3、覆盖或实现父类的方法时输入参数可以被放大4、覆写或实现父类的方法时输出结果可以被缩小优点:版本升级时保持好的兼容性,即使增加子类,原有子类也可以继续运行一句话总结:子类遵循此规范,使得基类能够无差异的调度子类依赖倒置原则核心:面向接口编程1、模块间依赖通过抽象产生2、接口或抽象类不依赖于实现类3、实现类依赖接口或抽象类优点:通 阅读全文
posted @ 2012-05-01 15:41 antoniohu 阅读(134) 评论(0) 推荐(0)
摘要: 实例变量(不以static修饰)成员变量类属性(以static修饰)所有变量形参(方法签名中定义的变量)局部变量方法局部变量(在方法内定义)代码块局部变量(在代码块内定义)# 局部变量除了形参之外,都必须被显示初始化# 系统不会为局部变量执行初始化,知道等程序为这个变量赋初始值时,系统才会为局部变量分配内存,并将初始值保存到这块内存中# 局部变量和成员变量可重名,局部变量会覆盖成员变量,可用this访问成员变量# 方法重写遵循“两同两小一大”规则> 两同:方法同名、形参列表相同> 两小:子类方法返回值类型<=父类’s,子类方法抛出异常类<=父类’s> 一大:子类方 阅读全文
posted @ 2012-04-16 09:46 antoniohu 阅读(226) 评论(0) 推荐(1)
摘要: 字符串的陷阱# 创建对象的四种方式:1、通过new调用构造器创建2、通过Class对象的newInstance()方法调用构造器创建3、通过反序列化机制从IO流中恢复4、通过clone()方法复制· String java = new String("Java");~上面语句创建了两个字符串对象,一个是“java”这个直接量对应的字符串对象,一个是由new String()构造器返回的字符串对象· String str = "Hello" + "Java" + "!";~ 上面语句创建了一个字符 阅读全文
posted @ 2012-04-07 16:52 antoniohu 阅读(169) 评论(0) 推荐(1)
摘要: JVM回收对象前会调用可恢复状态的对象的finalize方法,若让一个以上引用变量重新引用该对象,则对象可达,否则不可达,系统将回收该对象占有的资源。Java语言对对象的引用有如下4种:# 强引用{创建一个对象,将其赋给一个引用变量}~JVM不回收# 软引用{通过SoftReference类实现}|内存不足时回收|# 弱引用{通过WeakReference类实现}|每次垃圾回收机制执行时都会回收~当程序有大量对象需要弱引用时,可使用WeakHashMap保存|# 虚引用{通过PhantomReference类实现,必须和ReferenceQueue联合使用 }|系统无法通过虚引用来获得被引用的 阅读全文
posted @ 2012-04-07 14:42 antoniohu 阅读(226) 评论(0) 推荐(1)
摘要: # final可修饰变量、方法、类# 必须显示指定初始值,不可执行默认初始化,final实例变量经过编译器处理,都会被抽取到构造器中赋初始值,final类变量初始化时会被抽取到静态初始化块中赋初始值# 局部变量需显示初始化赋值# 对于一个final变量,不管是类变量、实例变量、局部变量,只要定义该变量时使用了final修饰符,并在定义时指定了初始值,而且该初始值可以在编译时就被确定下来(算术表达式或字符串连接运算(可以包含隐式类型(将数值转换为字符串)),那这个final变量本质上已经不再是变量,而是相当于一个直接量;# 只有在定义final实例或类变量时指定初始值才会有“宏变量”的“宏替换” 阅读全文
posted @ 2012-04-06 15:57 antoniohu 阅读(235) 评论(0) 推荐(1)
摘要: # 所有局部变量都是放在栈内存中,引用类型变量所引用的对象总是存储在堆内存中# 不允许直接访问堆内存中的数据# 类体内定义的变量称为成员变量,若无static则是非静态变量或实例变量,若使用了static,则为静态变量或类变量# 类变量初始化时机总是处于实例变量初始化之前,一个JVM内的一个类变量只需一快内存空间# 类也是对象,所有类都是Class的实例,获取Class实例,可通过Person.class 或 Class.forName("Person")# 程序可以在3个地方对地方实例变量执行初始化Ⅰ定义实例变量时指定初始值Ⅱ非静态初始化块中对实例变量指定初始值Ⅲ构造器中 阅读全文
posted @ 2012-04-05 16:48 antoniohu 阅读(170) 评论(0) 推荐(1)
摘要: 正确关闭资源方式# 关闭前保证引用资源的引用变量不为空# 每个资源单独try...catch...来保证异常互不影响 1 public class CloseResource3 2 { 3 public static void main(String[] args) 4 throws Exception 5 { 6 Wolf w = new Wolf("灰太狼"); 7 System.out.println("Wolf对象创建完成~"); 8 Wolf w2 = null; 9 ObjectOut... 阅读全文
posted @ 2012-04-04 17:26 antoniohu 阅读(195) 评论(1) 推荐(0)
摘要: Service与BroadcastReceiver> abstract IBinder onBind(intent) //必须实现的方法> void onCreate()> void onDestroy()> void onStartCommand(intent,flags,staratId > boolean onUnbind(intent)Context> startService(service)#初建时调用onCreate(),多次启动回调onStart()> bindService(service,conn,flags)ServiceConn 阅读全文
posted @ 2012-03-31 21:03 antoniohu 阅读(582) 评论(0) 推荐(0)
摘要: ContentProvider注册AndroidManifest.xml> <provider android:name=".DictProvider" android:authorities="org.crazyit.providers.dictprovider"/>> boolean onCreate()> Uri insert(uri,values)> int delete(uri,selection,selectionArgs)> int update(uri,values,selection,selec 阅读全文
posted @ 2012-03-31 21:02 antoniohu 阅读(232) 评论(0) 推荐(0)