百度在6月20号发布了2.1.2版本的sdk,相对于2.1.1版本功能更加完善。
地址:http://developer.baidu.com/map/sdk-android.htm
这是我要讲解的代码:
在同时发布的demo中,代码注释比前一个版本的强多了,我们可以来一起学习学习。
这一讲是DemoApplication.java。
DemoApplication继承Application,那我们先来了解一下Application是什么。
在android SDK中:
application是用来保存全局变量的,并且是在package创建的时候就跟着存在了。所以当我们需要创建全局变量的时候,不需要再像j2se那样需要创建public权限的static变量,而直接在application中去实现。只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应的处理。
-
值得注意的是使用Application需要在manifest.xml文件中注册。比如百度提供的demo中:
<application android:name="baidumapsdk.demo.DemoApplication" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name">
在DemoApplication中百度开发者使用了单例模式,其实这和application的用途也是统一的。
在其他文件中有多次调用此类。private static DemoApplication mInstance = null;
好了,我们继续八。在DemoApplication中主要有两个功能:
1 提供处理DemoApplication实例的方法。从代码的21行到41行均是。
2 实现MKGeneralListener监听。为了保证地图的正常运行, 有两个条件必不可少:网络和正确的key。
好了,下节继续。
-
其实除了这两个原因之外,熟悉android开发的朋友应该对开发过程中随处可见的Context印象颇深,有时候还需要将context传来传去。其实在处理这个问题上,Application也是可以解决的。当然,在demo中也顺带解决了这个问题。