使用Andfroid百度地图API点击back键后再一次进入会出错问题

     最近在做一个项目的时候遇到一个问题,在Android中调用了百度地图的API,第一次进入后点击back键退出,之后再一次进入的时候发现程序会强行退出并且报错,一开始以为是关闭程序的时候没有关闭好百度地图的原因,但是看了好久都没有发现问题,最后Debug了一下,终于发现问题所在了。

     Android程序点击back键退出,其实并不是真的退出,它的Application依然存在与内存中,只有当手机内存不足或者是程序调用了System.exit(0);的时候,程序的Application才会关闭。

     要调用百度地图,就要在setContentView(R.layout.activity_main);之前初始化百度地图,一开始我是把初始化写在Application子类的onCreate中的,但是由于Android系统的设计(上面所说的),第一次打开程序的时候会先执行Application中的onreate方法,在执行Activity的onreate方法,这样百度地图会先初始化,然后程序正常运行,但是关闭了Activity后Application并没有关闭,但是百度地图关闭了,当再一次打开Acitvity的时候,Application的onreate方法并没有运行,也就没有初始化百度地图,这样就会报错。

    解决办法就是把百度地图的初始化抽出到一个方法,然后在Activity中动态调用。

    经验总结,不是所有的初始化都可以写在Application的onreate方法中的。

你可能感兴趣的:(Android百度地图API,按back退出后进入报错)