2016-03-13 25 views
8

Zajmuję się kolejną nawigację z kolei z bieżącej lokalizacji do miejsca docelowego. I zrobić to za pomocą poniżej kodMapa google Android kolei po kolei nawigacji

Uri gmmIntentUri = Uri.parse("google.navigation:q="+address); 
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); 
mapIntent.setPackage("com.google.android.apps.maps"); 
startActivity(mapIntent); 

Problemem jest to, że jeśli kliknij z powrotem na ekranie 1 trwa do ekranu 2. Następnie kliknij gdybym z powrotem na ekranie 2 trwa do ekranu 3, a następnie ekran 4, a następnie w końcu moja aktywność.

Po kliknięciu z powrotem na ekranie 1, co mogę zrobić, aby uzyskać dostęp do mojej aktywności? jak mogę zakończyć screen2, screen3, screen4 klikając ponownie na screen1?

ekran 1:

enter image description here

ekran 2:

enter image description here

ekran 3:

enter image description here

ekran 4:

enter image description here

+0

to jest? http://stackoverflow.com/a/4038637/697856 – wf9a5m75

+0

@selva_pollachi Czy rozwiązałeś ten problem? Jeśli jest to pls, udostępnij swój kod. – Satheesh

+0

@Satheesh Nie. Nie rozwiązałem tego. Czy masz jakieś rozwiązanie? –

Odpowiedz

1

tego może być poniższa rozwiązanie działa nie jestem pewien, ale niech spróbować z tym.

Uruchom ekran 2,3 z android: noHistory = "true" w swoim wpisie manifestu.

Uruchom Ekran 4 z zamiarem

+0

Proszę dać mi znać pogody działa, czy nie. Więc to dla ciebie najlepsze. –

+0

Dzięki. Ekrany te są obecne w bibliotece. Nie w mojej aplikacji. –

0

oddany do swojej intencji flagi FLAG_ACTIVITY_PREVIOUS_IS_TOP

Uri gmmIntentUri = Uri.parse("google.navigation:q="+address); 
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); 
mapIntent.setPackage("com.google.android.apps.maps"); 
mapIntent.setFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
startActivity(mapIntent); 

` Z android dokumentacji:

Jeśli ustawiony i ten zamiar jest używany do uruchomienia nowej aktywności z istniejącej, bieżąca aktywność nie zostanie policzona d jako najwyższa aktywność w podejmowaniu decyzji, czy nowy zamiar powinien zostać dostarczony na szczyt, zamiast rozpoczynać nowy. Poprzednie działanie będzie używane jako szczyt, przy założeniu, że bieżące działanie zakończy się natychmiast.

0

połączeń zamiar tak w Screenshot2.class, Screenshot3.class

Intent in =new Intent(Screenshot2.this, Screenshot3.class); 
         finish(); 
         startActivity(in);