2013-03-08 22 views
5

Mam aktywność, która utrzymuje sygnał dźwiękowy do momentu, gdy użytkownik kliknie przycisk. Po kliknięciu przycisku wyświetla się komunikat. Po wyświetleniu komunikatu, zamiast naciskać przycisk "Wstecz", aby wyjść, chcę, aby moja aktywność została uruchomiona na ekranie głównym.Powrót do ekranu głównego po zakończeniu działania

Czy robi to metoda finish()? Jeśli tak, w jaki sposób i gdzie powinienem go wdrożyć?

Każdy rodzaj pomocy zostanie doceniony. Dzięki

Odpowiedz

7
Intent i= new Intent("package.homescreenactivity");//homescreen of your app. 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY); 
    startActivity(i); 
    finish(); 

Powróć do ekranu głównego, usuwając stos działań.

Aby zrozumieć całą koncepcję, sugeruję zapoznanie się z tą witryną. http://developer.android.com/guide/components/tasks-and-back-stack.html. Witryna mówi o tym, jak działa wsteczny stos działań.

Aktualizacja: (15 sierpnia 2014)

Clearing Backstack może nie być dobrym pomysłem. Zobacz wytyczne dotyczące efektywnej nawigacji.

Przycisk powrotu ma na celu powrót do poprzedniej aktywności.

Sprawdź

http://developer.android.com/design/patterns/navigation.html

+1

Przepraszam, jeśli nie było jasne. Miałem na myśli domyślny ekran główny telefonu z Androidem. Czy to wraca do tego? – newbee

+0

Sprawdź edytowany wpis. – Raghunandan

+0

masz! dzięki :) – newbee

1

Zastosuj wykończenie() metoda w całej działalności. Po zakończeniu aktywności wróci do ekranu głównego.

1

Przypadek 1: W przypadku kliknięcia przycisku

public void onClick(View v) { 
    // Show message here 
    moveTaskToBack(true); 
    } 

Przypadek 2: Jeśli chcesz zadać użytkownikowi iść do domu

public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 

      AlertDialog.Builder alertbox = new AlertDialog.Builder(this); 
      alertbox.setTitle(res.getString("Title")); 
      alertbox.setMessage(res.getString("Exit")); 
      alertbox.setIcon(R.drawable.logo); 
      alertbox.setPositiveButton(res.getString(R.string.Yes), 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface arg0, int arg1) { 
          exit(); 
         } 
        }); 

      alertbox.setNeutralButton(res.getString(R.string.No), 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface arg0, int arg1) { 
         } 
        }); 

      alertbox.show(); 
      return true; 
     } 

     return super.onKeyDown(keyCode, event); 
    } 

    private void exit() { 
     moveTaskToBack(true); 

    } 
1

Zakładając, że pokazując komunikat jako alertdialog, zadzwoń finish() na naciśnięcie przycisku alertdialog.

Jeśli używasz Toast(), zadzwoń pod numer finish() po naciśnięciu przycisku po wyświetleniu Toast().

0

Możesz zastosować metodę finish() na przycisku , a po startActivity() możesz zastosować metodę wykańczania, jak pokazano poniżej.

startActivity(intent obj); 
finish(); 
Powiązane problemy