高德導航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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM