Android TabActivity 无法正常 bindService 解决方法

在 Android 开发的过程中,我们很有可能会使用到 TabActivity 来进行开发,而如果你的程序中需要针对 TabActivity 的 TabHost 中的每一个 Activity 绑定一个 Service,通常我们的做法是在对应 Tab 页的 Activity 的 onCreate() 方法中进行 bind 操作,但是通过实践表明这个方法是无法达到绑定效果,在网上查了一下,发现在 Google Android Issue 中有这个缺陷,缺陷详细信息在这里 (Google Android Issue 2483),三楼的 oliver 给出了正解

Using getApplicationContext().bindService instead of just bindService on your activity solves the problem as it is using the higher level application context.

也就是在 TabActivy 的 TabHost 中的 Activity 如果需要 bindService 的话,需要先调用 getApplicationContext() 获取其所属的 Activity 的上下文环境才能正常 bindService,也就是在 onCreate() 方法中使用 this.getApplicationContext().bindService([args…]) 就可以了, 否则 bindService 将永远失败返回 false。具体的代码并没有去查看,先记录一下吧。

====================明天是个好天气=======================