DemoApplication类

来源:互联网 发布:中石化邮箱域名是什么 编辑:程序博客网 时间:2024/06/10 18:53
package baidumapsdk.demo;import android.app.Application;import android.content.Context;import android.widget.Toast;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.MKGeneralListener;import com.baidu.mapapi.map.MKEvent;/*1.android.app.Application是android.content.Context的子类。2.DemoApplication是Application的子类3.DemoApplication类中重新实现了void onCreate()函数 4.onCreate()函数是程序启动是要做的:初始化BMapManager(地图引擎管理类)对象。5.BMapManager(Context context)是这个类的构造函数。需要的参数是Context类对引用。这里由于DemoApplication是Context的子类。所以可以将DemoApplication对象赋给这个引用。6.public boolean init(String strKey,MKGeneralListener listener)参数:strKey - 申请的授权验证码listener - 注册回调事件上一步中有了BMapManager地图引擎管理对象,之后需要调用init(String strKey,MKGeneralListener listener)函数来初始化。制定程序对应的key和监听类MKGeneralListener。7.public interface MKGeneralListener一般事件通知接口。 该接口返回网络状态,授权验证等结果,用户需要实现该接口以处理相应事件。要实现void onGetNetworkState(int iError)            返回网络错误 void onGetPermissionState(int iError)            返回授权验证错误 */public class DemoApplication extends Application {    private static DemoApplication mInstance = null;    public boolean m_bKeyRight = true;    BMapManager mBMapManager = null;    public static final String strKey = "6942606aa6eeefa05f6cc1d8a69a9515";    /*    注意:为了给用户提供更安全的服务,Android SDK自v2.1.3版本开始采用了全新的Key验证体系。    因此,当您选择使用v2.1.3及之后版本的SDK时,需要到新的Key申请页面进行全新Key的申请,    申请及配置流程请参考开发指南的对应章节    */@Override    public void onCreate() {    super.onCreate();mInstance = this;initEngineManager(this);/* * java.lang.Object    ↳ android.content.Context      ↳ android.content.ContextWrapper        ↳ android.app.Application *  * */}public void initEngineManager(Context context) {        if (mBMapManager == null) {            mBMapManager = new BMapManager(context);        }        if (!mBMapManager.init(strKey,new MyGeneralListener())) {            Toast.makeText(DemoApplication.getInstance().getApplicationContext(),                     "BMapManager  初始化错误!", Toast.LENGTH_LONG).show();        }}public static DemoApplication getInstance() {return mInstance;}// 常用事件监听,用来处理通常的网络错误,授权验证错误等    static class MyGeneralListener implements MKGeneralListener {                @Override        public void onGetNetworkState(int iError) {            if (iError == MKEvent.ERROR_NETWORK_CONNECT) {                Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "您的网络出错啦!",                    Toast.LENGTH_LONG).show();            }            else if (iError == MKEvent.ERROR_NETWORK_DATA) {                Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "输入正确的检索条件!",                        Toast.LENGTH_LONG).show();            }            // ...        }        @Override        public void onGetPermissionState(int iError) {            if (iError ==  MKEvent.ERROR_PERMISSION_DENIED) {                //授权Key错误:                Toast.makeText(DemoApplication.getInstance().getApplicationContext(),                         "请在 DemoApplication.java文件输入正确的授权Key!", Toast.LENGTH_LONG).show();                DemoApplication.getInstance().m_bKeyRight = false;            }        }    }}

原创粉丝点击