2013-09-23 22 views
16

Mam problemy z zakończeniem działania wcześniej. Chcę rozpocząć kolejną aktywność i zakończyć bieżącą aktywność. Kiedy użyłem finish, nie zakończyło to obecnej aktywności.Jak zakończyć działanie po rozpoczęciu innej aktywności w systemie Android?

Jak mogę zakończyć działanie wcześniej?

+0

Intent zamiaru = nowy Intent (A.this, B.class); startActivity (zamiar); Zakończ(); –

+0

Masz na myśli, że nie ma szans, aby te dwie czynności były uruchomione w tym samym czasie, brzmi to tak, jakbyś potrzebował trzeciej osoby do rozpoczęcia drugiej czynności, jeśli pierwsza nie żyje. Jeśli tak, prawdopodobnie będziesz potrzebować jakiejś usługi z zegarem sortowania. – MikeIsrael

+0

zakończy() przejmie aktywność bezpośrednio do onDestroy() z onResume()? –

Odpowiedz

67

Musisz swoje bieżące context do innej działalności najpierw z startActivity. Po tym możesz finish swój bieżący activity skąd przekierować.

Intent intent = new Intent(this, FirstActivity.class);// New activity 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); // Call once you redirect to another activity 
+0

Dzięki .. Bardzo pomocny i sukces .. – mrhands

+0

dlaczego używamy FLAG_ACTIVITY_CLEAR_TOP @vikalp patel ?? –

+5

Upewnia się, że nie można wrócić do poprzedniej czynności za pomocą przycisku POWRÓT. – erdomester

0

Dla np: używasz dwóch czynności, jeżeli chcesz, aby przełączyć się z działalności dla działalności B

Wystarczy dać w ten sposób.

  Intent intent = new Intent(A.this, B.class); 
     startActivity(intent); 
     finish(); 
3
Intent i = new Intent(this,Here is your first activity.Class); 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 
    finish(); 
1
  1. Zrób swoją aktywność A w pliku manifestu: launchMode = "singleInstance"
  2. Gdy użytkownik kliknie nowego, zrobić FirstActivity.fa.finish(); i wywołać nową intencji.
  3. Gdy użytkownik kliknie modyfikować wywołać nowy Intent lub po prostu zakończyć aktywność B.
0
startActivity(new Intent(context, ListofProducts.class) 
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)); 
+0

Czy mogę prosić o dodanie trochę kontekstu wokół swojej odpowiedzi. Odpowiedzi dotyczące tylko kodu są trudne do zrozumienia. Pomoże to pytającemu i przyszłym czytelnikom, jeśli dodasz więcej informacji do swojego postu. – RBT

Powiązane problemy