2017-04-06 72 views
0

在我的應用程序,我推出谷歌地圖從片段如下:啓動谷歌地圖,但隨着活動重新返回

mBtnMap.setOnClickListener(new View.OnClickListener() { 
... 
    String uri = String.format(locale, "geo:%f,%f", latitude, longitude); 
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));  
    getActivity().startActivity(intent); 
... 

當我按下後退按鈕,我的應用程序的簡歷,但活動將重新啓動。我希望它回到調用Google Map startActivity()的片段。

我做了一些不尋常的事情,讓活動重新啓動?
如何達到我的目的?

+0

做u加 「機器人:launchMode =」 在年manidest文件singleTop 「」? –

+0

將一些日誌記錄添加到您的Activity中,特別是onCreate(),onResume()和onDestroy(),並查看哪些生命週期方法實際上被調用以及何時。你所描述的行爲是奇怪的,並且是非標準的。這可能是因爲設備內存不足,需要殺死您的應用程序才能啓動Google地圖過程。在這種情況下,你的'活動'將會重新開始。但添加日誌記錄並檢查是否真的發生了什麼。 –

+0

沒有其他建議適用於我,我會稍後嘗試您的建議。現在,我通過簡單地使用startActivityResult來啓動Google Map活動來解決問題。不知道爲什麼...但現在解決它。如果您有任何理論,請分享。 – Sean

回答

0

查找解決

try{ 
    String uri = String.format(locale, "geo:%f,%f", latitude, longitude); 
    Intent mapIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
    mapIntent.setPackage("com.google.android.apps.maps"); 
    startActivity(mapIntent); 
    }catch(Exception e){ 
    // ActivityNotFoundException 
    } 
+0

這與OP的原始代碼有什麼不同?你在這裏做了什麼不同? –