高德导航AMapNaviView线路规划失败?速来看看

  根据项目需求,需要地图页展示具体路线及自定义高德导航页面,

      接入过程中遇到线路规划失败的问题,接下来给大家讲解一下导航填坑之旅。

  使用场景如下:A页面为地图展示页(展示规划好的路线且当前车辆位置)

           B页面为实际自定义导航页

  原代码:

    进入 A 页面调用 AMapNavi.getInstance() 。

  此时候如果正确添加了AMapNaviListener 监听,会收到 initNaviSuccess 回调。

    进入B页面又调用 AMapNavi.getInstance()。

 由于 AMapNavi是单例对象,只在第一次创建对象的时候回调,此时并不会回调 initNaviSuccess。

   原因:因AMapNavi为单例对象,在A页面初始化后,在进入B页面时未销毁,同时在B页面又调用了初始化方法,此时不会回调initNaviSuccess。

  修正:

  方法1:在从A页面跳转到B页面之前,在A页面先调用 AMapNavi.destory(),此时 AMapNavi单例对象被销毁了。然后B页面再去初始化,此时在B页面能收到 initNaviSuccess 回调。

  方法2:将AMapNavi初始化提在BaseActivity中,因A页面和B页面同时一个订单及业务,对应规划的路线也是一致的,所以无需加以区分,直接在BaseActivity中初始化后,各个子页面都可直接调用。

 

  所以,当您的 initNaviSuccess 不回调时,请检查:

    1、是否在其他页面创建了 AMapNavi 对象。

    2、退出页面并未销毁 AMapNavi 对象。

 

  By:yzl

 

 

 

原文地址:https://www.cnblogs.com/widgetbox/p/13213879.html