android 内存不足 百度地图,使用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方法中的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值