DemoApplication类

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;
            }
        }
    }
}

你可能感兴趣的:(DemoApplication类)